Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich den Fehler „Kein Anzeigename und keine $DISPLAY-Umgebungsvariable“ in Matplotlib?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-22 21:02:02153Durchsuche

How to Fix the

Fehler: kein Anzeigename und keine Umgebungsvariable $DISPLAY

Dieser Fehler tritt auf, wenn Matplotlib, eine Python-Bibliothek zur Datenvisualisierung, dies versucht Verwenden Sie ein Backend, das eine grafische Ausgabe erfordert, aber keine gültige Anzeigeumgebung finden kann.

Matplotlib verwendet standardmäßig das Xwindows-Backend, für das ein X-Server und eine Umgebungsvariable $DISPLAY festgelegt werden müssen. Im gegebenen Szenario deutet der Fehler darauf hin, dass auf dem Server, auf dem das Python-Skript ausgeführt wird, weder ein Anzeigename noch eine $DISPLAY-Variable verfügbar ist.

Lösung:

Um dieses Problem zu beheben, können Sie Matplotlib so einstellen, dass es ein nicht interaktives Backend verwendet, das keine grafische Ausgabe erfordert. Fügen Sie am Anfang Ihres Skripts die folgende Zeile hinzu, bevor Sie matplotlib importieren:

<code class="python">import matplotlib
matplotlib.use('Agg')</code>

Dadurch wird Matplotlib für die Verwendung des Agg-Backends konfiguriert, einem nicht interaktiven Backend, das Ausgaben in einem Dateiformat generiert, z als PNG oder PDF.

Alternativ können Sie die folgende Zeile zu Ihrer .config/matplotlib/matplotlibrc-Datei hinzufügen, um das nicht interaktive Backend zum Standard zu machen:

backend: Agg

Wenn ja Wenn Sie einen X-Server auf einem Remote-Computer haben, können Sie den folgenden SSH-Befehl verwenden, um X11-Verbindungen weiterzuleiten:

<code class="bash">ssh -X remoteMachine.com</code>

Dadurch wird die Umgebungsvariable $DISPLAY auf dem Remote-Computer festgelegt, sodass Matplotlib das Xwindows-Backend verwenden kann .

Schließlich können Sie versuchen, die Variable $DISPLAY manuell zu exportieren:

<code class="bash">export DISPLAY=mymachine.com:0.0</code>

Dadurch wird die Variable $DISPLAY auf die angegebene Remote-Maschine und Anzeigenummer gesetzt.

Weitere Informationen zu diesem Fehler und möglichen Lösungen finden Sie in der Matplotlib-Dokumentation: https://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Kein Anzeigename und keine $DISPLAY-Umgebungsvariable“ in Matplotlib?. 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