Générer un PNG avec Matplotlib lorsque DISPLAY n'est pas défini
En Python, matplotlib est une bibliothèque populaire pour créer des visualisations statiques, animées et interactives . Cependant, lorsque DISPLAY n'est pas défini dans l'environnement, tenter de générer une image PNG à l'aide de matplotlib peut conduire au message d'erreur "pas de nom d'affichage et pas de variable d'environnement $DISPLAY". Cette erreur se produit car le backend par défaut de matplotlib nécessite un serveur X, qui n'est pas disponible dans certains environnements.
Pour résoudre ce problème, nous devons explicitement configurer matplotlib pour qu'il utilise le backend Agg (Anti-Grain Geometry). Agg est un backend non interactif qui ne nécessite pas de serveur X, permettant la création d'images dans des environnements sans tête.
Voici comment implémenter cette solution :
import matplotlib # Force matplotlib to use the Agg backend matplotlib.use('Agg')
Placez ceci code au début de votre script, avant d'importer tout autre sous-module matplotlib tel que pyplot. En définissant le backend sur Agg avant d'importer pyplot, nous garantissons que matplotlib ne tente pas d'utiliser un backend utilisant X.
Alternativement, vous pouvez définir le backend de manière permanente en modifiant votre fichier de configuration .matplotlibrc. Dans la section backend, définissez ce qui suit :
backend : Agg
Ce paramètre global élimine le besoin de spécifier explicitement le backend dans vos scripts.
Une fois le backend approprié configuré, vous pouvez générer du PNG images utilisant matplotlib sans rencontrer l'erreur "DISPLAY non défini".
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!