Parece que Matplotlib necesita la variable de entorno $ DISPLAY, lo que significa que se está ejecutando un servidor X.
Algunos servicios de alojamiento web no permiten ejecutar una sesión de servidor X.
¿Hay alguna forma de generar gráficos usando matplotlib sin un servidor X en ejecución?Generación de gráficos matplotlib sin un servidor X en ejecución
[[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
>>>
Me parece una locura que tenga que importar matplotlib dos veces. hay una manera mas facil? –
Por lo que vale, en realidad no está importando matplotlib dos veces. Está importando matplotlib y luego está importando un submódulo que no se importa automáticamente. Hay otras formas, sí (por ejemplo, cambiar el archivo '.maplotlibrc'), esa es la más directa. –
¿y si ya importé pyplot? ¿Todavía puedo hacerlo? –