"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment corriger l'erreur « pas de nom d'affichage et pas de variable d'environnement $DISPLAY » dans Matplotlib ?

Comment corriger l'erreur « pas de nom d'affichage et pas de variable d'environnement $DISPLAY » dans Matplotlib ?

Publié le 2024-11-05
Parcourir:564

How to Fix the \

"_tkinter.TclError : aucun nom d'affichage et aucune variable d'environnement $DISPLAY"

Cette erreur se produit généralement lors de l'exécution d'un script Python à l'aide de Matplotlib sur un serveur sans affichage graphique. Matplotlib s'appuie sur un backend pour restituer les tracés et, par défaut, il choisit le backend Xwindows, qui nécessite un affichage graphique.

Pour résoudre ce problème, vous devez demander à Matplotlib d'utiliser un backend non interactif, tel que comme Agg. Voici comment y parvenir :

  • Ajoutez le code suivant au début de votre script, avant d'importer pyplot :
import matplotlib
matplotlib.use('Agg')

Ce code définit le backend matplotlib sur Agg, ce qui convient pour générer des images statiques sans affichage.

  • Alternativement, vous pouvez ajoutez la ligne suivante à votre fichier .config/matplotlib/matplotlibrc :
backend: Agg

Ceci utilisera en permanence le backend Agg pour vos scripts Python.

  • Si vous vous connectez au serveur à distance, utilisez la commande suivante :
ssh -X remoteMachine.com

Cette commande activez le transfert X11, vous permettant d'utiliser un affichage sur le serveur.

  • Vous pouvez également essayer d'exporter la variable DISPLAY :
export DISPLAY=mymachine.com:0.0

Cela définira la variable d'environnement DISPLAY, qui est requise pour le backend Xwindows.

Pour plus d'informations sur l'utilisation de Matplotlib sur les serveurs, reportez-vous à la documentation : https:/ /matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729601116. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3