"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 resolver o erro "_tkinter.TclError: sem nome de exibição e sem variável de ambiente $DISPLAY" ao usar Matplotlib em um servidor?

Como resolver o erro "_tkinter.TclError: sem nome de exibição e sem variável de ambiente $DISPLAY" ao usar Matplotlib em um servidor?

Publicado em 2024-11-08
Navegar:684

How to Resolve \

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

Ao executar um script Python envolvendo Matplotlib em um servidor, você pode encontrar o erro "_tkinter.TclError: nenhum nome de exibição e nenhuma variável de ambiente $DISPLAY." Este erro surge porque o padrão do Matplotlib é usar o backend Xwindows, que requer um ambiente de exibição gráfica. No entanto, os ambientes de servidor geralmente não possuem esse recurso.

Para resolver esse problema, você pode instruir o Matplotlib a utilizar um back-end não interativo. Insira o seguinte código no início do seu script, antes de importar o pyplot:

import matplotlib
matplotlib.use('Agg')

Como alternativa, você pode adicionar a seguinte linha ao arquivo .config/matplotlib/matplotlibrc:

backend: Agg

Isso irá configurar Matplotlib para usar o backend Agg, que não requer exibição gráfica.

Outra opção é usar ssh com Encaminhamento X11:

ssh -X remoteMachine

Este comando permite que você acesse aplicativos Xwindows remotamente.

Finalmente, você pode definir a variável de ambiente DISPLAY:

export DISPLAY=mymachine.com:0.0

Ao especificar um nome de exibição válido, Matplotlib irá ser capaz de se conectar a um display gráfico em outra máquina.

Para obter mais informações, consulte as Perguntas frequentes do Matplotlib: https://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web- servidor de aplicação

Declaração de lançamento Este artigo foi reimpresso em: 1729601058 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