Heim >Backend-Entwicklung >Python-Tutorial >Wie generiert man PNGs mit Matplotlib in einer Headless-Umgebung?

Wie generiert man PNGs mit Matplotlib in einer Headless-Umgebung?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-02 18:45:13312Durchsuche

How to Generate PNGs with Matplotlib in a Headless Environment?

Generieren eines PNG mit Matplotlib, wenn DISPLAY nicht definiert ist

Die Fehlermeldung weist darauf hin, dass Matplotlib versucht, ein interaktives Backend zu verwenden, das eine Anzeige erfordert. Die Umgebungsvariable DISPLAY ist jedoch nicht festgelegt. Durch Festlegen des Matplotlib-Backends auf Agg (nicht interaktiv) kann dieser Fehler behoben werden.

Lösung mit Agg-Backend

Importieren Sie Matplotlib und erzwingen Sie die Verwendung des Agg-Backends, bevor Sie ein anderes Matplotlib-Modul importieren:

import matplotlib
# Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')

Dadurch wird sichergestellt, dass Matplotlib ein nicht interaktives Backend verwendet, wodurch die Abhängigkeit von einem beseitigt wird Anzeige.

matplotlib-Konfiguration

Alternativ legen Sie das Backend in Ihrer ~/.matplotlibrc-Konfigurationsdatei fest:

backend: Agg

Um das Agg-Backend zu verwenden, ohne Codezeilen hinzuzufügen , erstellen oder bearbeiten Sie die Konfigurationsdatei (~/.matplotlibrc) wie folgt Inhalt:

backend: Agg

Indem Sie sicherstellen, dass matplotlib ein nicht interaktives Backend verwendet, können Sie PNG-Dateien generieren, ohne dass eine Anzeige erforderlich ist. Diese Lösung ist besonders nützlich, wenn Skripte auf Servern oder in Headless-Umgebungen ausgeführt werden, in denen keine Anzeige verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie generiert man PNGs mit Matplotlib in einer Headless-Umgebung?. 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