Tkinter-Fehler: Kein Anzeigename und keine $DISPLAY-Umgebungsvariable
Der Fehler „_tkinter.TclError: Kein Anzeigename und keine $DISPLAY-Umgebung „variable_“ tritt auf, wenn ein Python-Skript mit matplotlib auf einem Server ohne X-Window-System ausgeführt wird. Xwindows ist ein grafisches Benutzeroberflächensystem (GUI), das für das Standard-Tkinter-Backend von Matplotlib erforderlich ist.
Lösung:
Um dieses Problem zu beheben, weisen Sie Matplotlib an, ein Backend zu verwenden, das es ist kompatibel mit Nicht-GUI-Umgebungen. Es gibt mehrere Möglichkeiten, dies zu erreichen:
1. Verwenden Sie das „Agg“-Backend:
Fügen Sie die folgende Zeile am Anfang Ihres Skripts hinzu, bevor Sie Pyplot importieren:
<code class="python">import matplotlib matplotlib.use('Agg')</code>
Dadurch wird das Matplotlib-Backend auf Agg gesetzt, was nicht der Fall ist -Interaktives Backend, das sich zum Generieren von Bildern eignet, ohne dass eine grafische Anzeige erforderlich ist.
2. Legen Sie die Matplotlib-Konfiguration fest:
Fügen Sie die folgende Zeile zur Konfigurationsdatei ~/.config/matplotlib/matplotlibrc hinzu:
backend: Agg
Dadurch wird Matplotlib angewiesen, standardmäßig das Agg-Backend zu verwenden für alle Skripte.
3. Verwenden Sie SSH mit X-Forwarding:
Wenn Sie über SSH eine Verbindung zum Server herstellen, verwenden Sie die Option -X, um X-Forwarding zu aktivieren:
ssh -X remoteMachine
Dadurch kann das Skript Folgendes tun Greifen Sie auf die GUI auf Ihrem lokalen Computer zu.
4. DISPLAY-Variable exportieren:
Exportieren Sie die DISPLAY-Variable, um auf die IP-Adresse und Anzeigenummer des Host-Computers zu verweisen:
export DISPLAY=mymachine.com:0.0
Weitere Informationen:
Weitere Informationen zur Verwendung von Matplotlib in nicht interaktiven Umgebungen finden Sie in den Matplotlib-FAQ: https://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server
Das obige ist der detaillierte Inhalt vonWie behebt man den Tkinter-Fehler: Kein Anzeigename und keine Umgebungsvariable $DISPLAY?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!