„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie löse ich das Problem „_tkinter.TclError: kein Anzeigename und keine Umgebungsvariable $DISPLAY“ für Python-Skripte, die Matplotlib auf einem Server verwenden?

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

Veröffentlicht am 12.11.2024
Durchsuche:837

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:
import matplotlib
matplotlib.use('Agg')
  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. Verwenden SSH mit X-Weiterleitung: Wenn Sie über SSH eine Verbindung zum Server herstellen, verwenden Sie die Option -X, um die Xwindows-Weiterleitung zu aktivieren. Dadurch können auf dem Server ausgeführte GUI-Anwendungen mit der GUI-Umgebung des Clients interagieren.
ssh -X remoteMachine.com
  1. Export $DISPLAY Variable: Setzen Sie die Umgebungsvariable $DISPLAY auf einen geeigneten Wert, z. B. die IP-Adresse und die Anzeigenummer des Client-Computers.
export DISPLAY=mymachine.com:0.0

By Wenn Sie eine dieser Lösungen implementieren, können Sie Matplotlib für den Betrieb in einer Serverumgebung konfigurieren, ohne auf eine GUI angewiesen zu sein.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729601178. Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3