Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur « _tkinter.TclError : pas de nom d'affichage et pas de variable d'environnement $DISPLAY » lors de l'utilisation de Matplotlib sur un serveur ?

Comment résoudre l'erreur « _tkinter.TclError : pas de nom d'affichage et pas de variable d'environnement $DISPLAY » lors de l'utilisation de Matplotlib sur un serveur ?

DDD
DDDoriginal
2024-10-22 20:50:29114parcourir

How to Resolve

Résolution de l'erreur "_tkinter.TclError : aucun nom d'affichage et aucune variable d'environnement $DISPLAY"

Lors de l'exécution d'un script Python impliquant Matplotlib sur un serveur, vous pouvez rencontrer le erreur "_tkinter.TclError : pas de nom d'affichage et pas de variable d'environnement $DISPLAY." Cette erreur se produit car Matplotlib utilise par défaut le backend Xwindows, qui nécessite un environnement d'affichage graphique. Cependant, les environnements de serveur manquent souvent de cette fonctionnalité.

Pour résoudre ce problème, vous pouvez demander à Matplotlib d'utiliser un backend non interactif à la place. Insérez le code suivant au début de votre script, avant d'importer pyplot :

<code class="python">import matplotlib
matplotlib.use('Agg')</code>

Vous pouvez également ajouter la ligne suivante au fichier .config/matplotlib/matplotlibrc :

backend: Agg

Cela configurera Matplotlib pour utiliser le backend Agg, qui ne nécessite pas d'affichage graphique.

Une autre option consiste à utiliser ssh avec le transfert X11 :

ssh -X remoteMachine

Cette commande vous permet d'accéder Applications Xwindows à distance.

Enfin, vous pouvez définir la variable d'environnement DISPLAY :

<code class="bash">export DISPLAY=mymachine.com:0.0</code>

En spécifiant un nom d'affichage valide, Matplotlib pourra se connecter à un affichage graphique sur une autre machine.

Pour plus d'informations, reportez-vous à la FAQ Matplotlib : https://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn