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
Libérer: 2024-10-22 20:50:29
original
117 Les gens l'ont consulté

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>
Copier après la connexion

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

backend: Agg
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!