Heim  >  Artikel  >  Backend-Entwicklung  >  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
Susan SarandonOriginal
2024-10-23 00:14:03542Durchsuche

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>
  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
  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
  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

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!

Stellungnahme:
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