Maison >développement back-end >Tutoriel Python >Comment générer des PNG avec Matplotlib dans un environnement sans tête ?

Comment générer des PNG avec Matplotlib dans un environnement sans tête ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 18:45:13312parcourir

How to Generate PNGs with Matplotlib in a Headless Environment?

Générer un PNG avec matplotlib lorsque DISPLAY n'est pas défini

Le message d'erreur indique que matplotlib essaie d'utiliser un backend interactif, qui nécessite un affichage. Cependant, la variable d'environnement DISPLAY n'est pas définie. Définir le backend de matplotlib sur Agg (non interactif) peut résoudre cette erreur.

Solution utilisant le backend Agg

Importez matplotlib et forcez-le à utiliser le backend Agg avant d'importer tout autre module matplotlib :

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

Cela garantit que matplotlib utilise un backend non interactif, éliminant ainsi la dépendance à un display.

Configuration matplotlib

Vous pouvez également définir le backend dans votre fichier de configuration ~/.matplotlibrc :

backend: Agg

Pour utiliser le backend Agg sans ajouter de lignes de code , créez ou modifiez le fichier de configuration (~/.matplotlibrc) avec ce qui suit contenu :

backend: Agg

En vous assurant que matplotlib utilise un backend non interactif, vous pouvez générer des fichiers PNG sans nécessiter d'affichage. Cette solution est particulièrement utile lors de l'exécution de scripts sur des serveurs ou dans des environnements sans tête où aucun affichage n'est disponible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn