Maison  >  Article  >  développement back-end  >  Comment corriger l'erreur Tkinter : aucun nom d'affichage et variable d'environnement $DISPLAY ?

Comment corriger l'erreur Tkinter : aucun nom d'affichage et variable d'environnement $DISPLAY ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 22:39:29894parcourir

How to Fix Tkinter Error: No Display Name and $DISPLAY Environment Variable?

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!

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