Matplotlib semble nécessiter la variable d'environnement $ DISPLAY, ce qui signifie un serveur X en cours d'exécution.
Certains services d'hébergement Web n'autorisent pas l'exécution d'une session de serveur X.
Existe-t-il un moyen de générer des graphiques en utilisant matplotlib sans serveur X en cours d'exécution?Génération de graphes matplotlib sans serveur X en cours d'exécution
[[email protected] ~]$ python2.6
Python 2.6.5 (r265:79063, Nov 23 2010, 02:02:03)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/pyplot.py", line 270, in figure
**kwargs)
File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
window = Tk.Tk()
File "/usr/local/lib/python2.6/lib-tk/Tkinter.py", line 1643, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
>>>
Cela me semble fou de devoir importer deux fois matplotlib. Y a-t-il un moyen plus facile? –
Pour ce que ça vaut, vous n'importez pas deux fois matplotlib. Vous importez matplotlib, puis importez un sous-module qui n'est pas importé automatiquement. Il y a d'autres façons, oui (par exemple, changer votre fichier '.maplotlibrc'), c'est le plus simple. –
Et si j'avais déjà importé pyplot? puis-je encore le faire? –