"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 corrigir o erro “sem nome de exibição e sem variável de ambiente $DISPLAY” no Matplotlib?

Como corrigir o erro “sem nome de exibição e sem variável de ambiente $DISPLAY” no Matplotlib?

Publicado em 2024-11-05
Navegar:265

How to Fix the \

"_tkinter.TclError: sem nome de exibição e sem variável de ambiente $DISPLAY"

Este erro normalmente ocorre ao executar um script Python usando Matplotlib em um servidor sem exibição gráfica. Matplotlib depende de um backend para renderizar gráficos e, por padrão, escolhe o backend Xwindows, que requer uma exibição gráfica.

Para resolver esse problema, você precisa instruir o Matplotlib a usar um backend não interativo, como como Ag. Veja como você pode conseguir isso:

  • Adicione o seguinte código no início do seu script, antes de importar o pyplot:
import matplotlib
matplotlib.use('Agg')

Este código define o back-end do matplotlib como Agg, que é adequado para gerar imagens estáticas sem exibição.

  • Como alternativa, você pode adicione a seguinte linha ao seu arquivo .config/matplotlib/matplotlibrc:
backend: Agg

Isso usará permanentemente o backend Agg para seus scripts Python.

  • Se você estiver se conectando ao servidor remotamente, use o seguinte comando:
ssh -X remoteMachine.com

Este comando irá habilite o encaminhamento X11, permitindo que você use um display no servidor.

  • Você também pode tentar exportar a variável DISPLAY:
export DISPLAY=mymachine.com:0.0

Isso definirá a variável de ambiente DISPLAY, que é necessária para o back-end do Xwindows.

Para obter mais informações sobre como usar Matplotlib em servidores, consulte a documentação: https:/ /matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server

Declaração de lançamento Este artigo foi reimpresso em: 1729601116 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
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