"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como gerar imagens PNG com Matplotlib quando a variável DISPLAY está indefinida?

Como gerar imagens PNG com Matplotlib quando a variável DISPLAY está indefinida?

Publicado em 2025-01-19
Navegar:750

How to Generate PNG Images with Matplotlib When the DISPLAY Variable Is Undefined?

Gerando um PNG com Matplotlib quando DISPLAY é indefinido

Em Python, matplotlib é uma biblioteca popular para criar visualizações estáticas, animadas e interativas . No entanto, quando DISPLAY não está definido no ambiente, a tentativa de gerar uma imagem PNG usando matplotlib pode levar à mensagem de erro "sem nome de exibição e nenhuma variável de ambiente $DISPLAY". Este erro ocorre porque o backend padrão do matplotlib requer um servidor X, que não está disponível em determinados ambientes.

Para resolver esse problema, devemos definir explicitamente o matplotlib para usar o backend Agg (Anti-Grain Geometry). Agg é um backend não interativo que não requer um servidor X, permitindo a criação de imagens em ambientes headless.

Aqui está como implementar esta solução:

import matplotlib
# Force matplotlib to use the Agg backend
matplotlib.use('Agg')

Coloque este código no início do seu script, antes de importar qualquer outro submódulo matplotlib, como pyplot. Ao definir o backend como Agg antes de importar o pyplot, garantimos que matplotlib não tente usar um backend usando X.

Como alternativa, você pode definir o backend permanentemente modificando seu arquivo de configuração .matplotlibrc. Na seção de back-end, defina o seguinte:

backend : Agg

Essa configuração global elimina a necessidade de especificar o back-end explicitamente em seus scripts.

Depois que o back-end apropriado for definido configurado, você pode gerar imagens PNG usando matplotlib sem encontrar o erro "DISPLAY indefinido".

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3