Heim >Backend-Entwicklung >Python-Tutorial >Wie behebe ich den Fehler „Generieren eines PNG mit Matplotlib, wenn DISPLAY undefiniert ist'?

Wie behebe ich den Fehler „Generieren eines PNG mit Matplotlib, wenn DISPLAY undefiniert ist'?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 16:10:12191Durchsuche

How to Fix the

So beheben Sie den Fehler „Generieren eines PNG mit Matplotlib, wenn DISPLAY nicht definiert ist“

Dieser Fehler tritt auf, wenn versucht wird, ein PNG-Bild mit Matplotlib in der DISPLAY-Umgebung zu generieren Variable ist nicht gesetzt oder undefiniert. Dies tritt normalerweise auf, wenn matplotlib in einer Headless-Umgebung wie einem Server oder einem Batch-Skript ausgeführt wird.

Die Hauptursache für diesen Fehler ist, dass matplotlib ein Backend auswählt, das standardmäßig eine X Windows-Anzeige erfordert. Um dieses Problem zu beheben, müssen Sie matplotlib explizit zwingen, ein Backend zu verwenden, das kein X Windows erfordert.

Lösung:

Um dieses Problem zu beheben, fügen Sie vorher den folgenden Code ein Importieren anderer Matplotlib-Module:

import matplotlib

# Force matplotlib to use a backend that does not require X Windows.
matplotlib.use('Agg')

Dadurch wird das Backend auf das Agg-Backend (Anti-Grain Geometry) eingestellt ist für die Generierung von Bildern konzipiert, ohne dass eine X-Windows-Anzeige erforderlich ist.

Alternative Lösung:

Eine alternative Lösung besteht darin, das Backend direkt im festzulegen. matplotlibrc Konfigurationsdatei. Diese Datei befindet sich normalerweise im Verzeichnis ~/.config/matplotlib. Fügen Sie der Datei die folgende Zeile hinzu:

backend: Agg

Dadurch wird das Backend für alle Matplotlib-Instanzen dauerhaft auf Agg gesetzt.

Wichtig

Denken Sie daran dass diese Lösungen implementiert werden müssen, bevor Sie andere Matplotlib-Module importieren, z pyplot. Andernfalls hat matplotlib sein Backend bereits ausgewählt und die use('Agg')-Direktive hat keine Wirkung.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Generieren eines PNG mit Matplotlib, wenn DISPLAY undefiniert ist'?. 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