Heim > Backend-Entwicklung > Python-Tutorial > Wie löst man das Problem „_tkinter.TclError: kein Anzeigename und keine Umgebungsvariable $DISPLAY' für Python-Skripte, die Matplotlib auf einem Server verwenden?

Wie löst man das Problem „_tkinter.TclError: kein Anzeigename und keine Umgebungsvariable $DISPLAY' für Python-Skripte, die Matplotlib auf einem Server verwenden?

Susan Sarandon
Freigeben: 2024-10-23 00:14:03
Original
658 Leute haben es durchsucht

How to Solve the

_tkinter.TclError: kein Anzeigename und keine Umgebungsvariable $DISPLAY

Problem

Python-Skripte, die Matplotlib verwenden, schlagen auf einem Server mit dem Fehler „ Kein Anzeigename und keine Umgebungsvariable $DISPLAY beim Generieren von Plots. Das Problem entsteht, weil Matplotlib standardmäßig das Xwindows-Backend verwendet und nicht mit Serverumgebungen kompatibel ist, die keine grafische Benutzeroberfläche (GUI) haben.

Lösung

Um dieses Problem zu beheben, stellen Sie Matplotlib so ein, dass es a verwendet nicht interaktives Backend. Es gibt mehrere Methoden, um dies zu erreichen:

  1. Code zum Skript hinzufügen: Fügen Sie am Anfang Ihres Skripts, bevor Sie matplotlib.pyplot importieren, den folgenden Code ein:
<code class="python">import matplotlib
matplotlib.use('Agg')</code>
Nach dem Login kopieren
  1. Matplotlib-Konfigurationsdatei ändern: Fügen Sie in der Datei .config/matplotlib/matplotlibrc die Zeile backend: Agg hinzu. Dadurch wird Matplotlib angewiesen, das nicht interaktive Agg-Backend zu verwenden.
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
Nach dem Login kopieren
  1. SSH mit X-Weiterleitung verwenden: Wenn Sie über SSH eine Verbindung zum Server herstellen, verwenden Sie das -X-Option zum Aktivieren der Xwindows-Weiterleitung. Dadurch können auf dem Server ausgeführte GUI-Anwendungen mit der GUI-Umgebung des Clients interagieren.
ssh -X remoteMachine.com
Nach dem Login kopieren
  1. $DISPLAY-Variable exportieren: Setzen Sie die Umgebungsvariable $DISPLAY auf B. die IP-Adresse und die Anzeigenummer des Client-Computers.
export DISPLAY=mymachine.com:0.0
Nach dem Login kopieren

Durch die Implementierung einer dieser Lösungen können Sie Matplotlib für den Betrieb in einer Serverumgebung konfigurieren, ohne auf einen Server angewiesen zu sein GUI.

Das obige ist der detaillierte Inhalt vonWie löst man das Problem „_tkinter.TclError: kein Anzeigename und keine Umgebungsvariable $DISPLAY' für Python-Skripte, die Matplotlib auf einem Server verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage