„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 behebe ich den Fehler „Kein Anzeigename und keine Umgebungsvariable $DISPLAY“ in Matplotlib?

Wie behebe ich den Fehler „Kein Anzeigename und keine Umgebungsvariable $DISPLAY“ in Matplotlib?

Veröffentlicht am 05.11.2024
Durchsuche:267

How to Fix the \

"_tkinter.TclError: kein Anzeigename und keine Umgebungsvariable $DISPLAY"

Dieser Fehler tritt normalerweise auf, wenn ein Python-Skript mit Matplotlib ausgeführt wird auf einem Server ohne grafische Anzeige. Matplotlib ist zum Rendern von Plots auf ein Backend angewiesen und wählt standardmäßig das Xwindows-Backend, das eine grafische Anzeige erfordert.

Um dieses Problem zu beheben, müssen Sie Matplotlib anweisen, ein nicht interaktives Backend zu verwenden, z als Agg. So können Sie das erreichen:

  • Fügen Sie den folgenden Code am Anfang Ihres Skripts hinzu, bevor Sie Pyplot importieren:
import matplotlib
matplotlib.use('Agg')

Dieser Code setzt das Matplotlib-Backend auf Agg, das zum Generieren statischer Bilder ohne Anzeige geeignet ist.

  • Alternativ können Sie Fügen Sie die folgende Zeile zu Ihrer .config/matplotlib/matplotlibrc-Datei hinzu:
backend: Agg

Dadurch wird das Agg-Backend dauerhaft für Ihre Python-Skripte verwendet.

  • Wenn Sie eine Remoteverbindung zum Server herstellen, verwenden Sie den folgenden Befehl:
ssh -X remoteMachine.com

Dieser Befehl wird Aktivieren Sie die X11-Weiterleitung, sodass Sie eine Anzeige auf dem Server verwenden können.

  • Sie können auch versuchen, die DISPLAY-Variable zu exportieren:
export DISPLAY=mymachine.com:0.0

Dadurch wird die Umgebungsvariable DISPLAY festgelegt, die für das Xwindows-Backend erforderlich ist.

Weitere Informationen zur Verwendung von Matplotlib auf Servern finden Sie in der Dokumentation: https:/ /matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729601116. 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