Maison >développement back-end >Tutoriel Python >Comment corriger l'erreur « Aucun nom d'affichage et aucune variable d'environnement $DISPLAY » dans Matplotlib ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 21:02:02278parcourir

How to Fix the

Erreur : pas de nom d'affichage et pas de variable d'environnement $DISPLAY

Cette erreur se produit lorsque Matplotlib, une bibliothèque Python pour la visualisation de données, tente de utilisez un backend qui nécessite une sortie graphique mais ne trouve pas d'environnement d'affichage valide.

Matplotlib utilise par défaut le backend Xwindows, qui nécessite la définition d'un serveur X et d'une variable d'environnement $DISPLAY. Dans le scénario donné, l'erreur suggère que ni un nom d'affichage ni une variable $DISPLAY ne sont disponibles sur le serveur sur lequel le script Python est exécuté.

Solution :

Pour résoudre ce problème, vous pouvez configurer Matplotlib pour qu'il utilise un backend non interactif qui ne nécessite pas de sortie graphique. Ajoutez la ligne suivante au début de votre script, avant d'importer matplotlib :

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

Cela configurera Matplotlib pour utiliser le backend Agg, qui est un backend non interactif qui génère une sortie dans un format de fichier, tel que au format PNG ou PDF.

Vous pouvez également ajouter la ligne suivante à votre fichier .config/matplotlib/matplotlibrc pour définir le backend non interactif par défaut :

backend: Agg

Si vous avez un serveur X disponible sur une machine distante, vous pouvez utiliser la commande SSH suivante pour transférer les connexions X11 :

<code class="bash">ssh -X remoteMachine.com</code>

Cela définira la variable d'environnement $DISPLAY sur la machine distante, permettant à Matplotlib d'utiliser le backend Xwindows .

Enfin, vous pouvez essayer d'exporter la variable $DISPLAY manuellement :

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

Cela définira la variable $DISPLAY sur la machine distante spécifiée et affichera le numéro.

Pour plus d'informations sur cette erreur et les solutions possibles, consultez la documentation 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