Erreur Tkinter : pas de nom d'affichage et variable d'environnement $DISPLAY
L'erreur "_tkinter.TclError : pas de nom d'affichage et pas d'environnement $DISPLAY variable_" se produit lors de l'exécution d'un script Python à l'aide de matplotlib sur un serveur sans système X-window. Xwindows est un système d'interface utilisateur graphique (GUI) requis par le backend Tkinter par défaut de matplotlib.
Solution :
Pour résoudre ce problème, demandez à matplotlib d'utiliser un backend qui est compatible avec les environnements non-GUI. Il existe plusieurs façons d'y parvenir :
1. Utilisez le backend 'Agg' :
Ajoutez la ligne suivante au début de votre script avant d'importer pyplot :
<code class="python">import matplotlib matplotlib.use('Agg')</code>
Cela définit le backend matplotlib sur Agg, qui est un non -backend interactif adapté à la génération d'images sans avoir besoin d'un affichage graphique.
2. Définir la configuration de Matplotlib :
Ajoutez la ligne suivante au fichier de configuration ~/.config/matplotlib/matplotlibrc :
backend: Agg
Cela demandera à matplotlib d'utiliser le backend Agg par défaut pour tous les scripts.
3. Utilisez SSH avec X-Forwarding :
Lors de la connexion au serveur via SSH, utilisez l'option -X pour activer X-forwarding :
ssh -X remoteMachine
Cela permettra au script de accédez à l'interface graphique sur votre ordinateur local.
4. Exporter la variable DISPLAY :
Exportez la variable DISPLAY pour pointer vers l'adresse IP et le numéro d'affichage de la machine hôte :
export DISPLAY=mymachine.com:0.0
Plus d'informations :
Pour plus de détails sur l'utilisation de matplotlib dans des environnements non interactifs, 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!