Maison >développement back-end >Tutoriel Python >Comment générer des images PNG avec Matplotlib lorsque DISPLAY n'est pas défini ?

Comment générer des images PNG avec Matplotlib lorsque DISPLAY n'est pas défini ?

DDD
DDDoriginal
2024-12-09 14:54:13470parcourir

How to Generate PNG Images with Matplotlib When DISPLAY is Undefined?

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

Problème :

Lors de la tentative de créez une image PNG en utilisant matplotlib sans qu'une variable d'environnement DISPLAY soit définie, vous pouvez rencontrer des erreurs indiquant que matplotlib ne peut pas localisez un backend approprié.

Cause :

matplotlib utilise par défaut un backend basé sur X, qui nécessite une variable DISPLAY valide. Lorsque DISPLAY n'est pas défini, matplotlib génère une erreur.

Solution : utilisez le backend 'Agg'

Pour résoudre ce problème, forcez matplotlib à utiliser "Agg" backend, qui ne nécessite pas d’affichage graphique. Ceci peut être réalisé en ajoutant le code suivant avant toute autre importation matplotlib :

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

Explication :

Le backend Agg est un backend non interactif qui fournit un moyen d'enregistrer des figures sous forme de fichiers sans avoir besoin d'un affichage graphique. En configurant matplotlib pour utiliser ce backend, vous pouvez générer des images PNG même sans variable DISPLAY valide.

Solutions alternatives :

  • Définissez la variable DISPLAY sur un périphérique d'affichage valide.
  • Utilisez un module Python différent qui ne repose pas sur matplotlib pour l'image génération.
  • Définissez le backend dans le fichier .matplotlibrc :
backend : Agg

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