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".
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