Matplotlib - ошибка Python
Настройка:
Процессор: x86_64
Операционная система: GNU/Linux
Distro: Fedora Release 13 (Goddard).
Python 2.6.4
/usr/bin/python
Вот следующая проблема:
Я пытаюсь создать несколько графиков с использованием Matplotlib и Python. Как я понимаю из большинства решений 3.., похоже, проблемы совместимости между matplotlib и 64-битные архитектуры.
Я установил Matplotlib из здесь
Вот ошибка, которую я получаю:
Traceback (most recent call last):
File "plot-thread-characterization.py", line 24, in <module>
import matplotlib.pyplot as plt
File "/usr/lib64/python2.6/site-packages/matplotlib/pyplot.py", line 78, in <module>
new_figure_manager, draw_if_interactive, show = pylab_setup()
File "/usr/lib64/python2.6/site-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
globals(),locals(),[backend_name])
File "/usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtkagg.py", line 10, in <module>
from matplotlib.backends.backend_gtk import gtk, FigureManagerGTK, FigureCanvasGTK,\
File "/usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtk.py", line 8, in <module>
import gtk; gdk = gtk.gdk
File "/usr/lib64/python2.6/site-packages/gtk-2.0/gtk/__init__.py", line 64, in <module>
_init()
File "/usr/lib64/python2.6/site-packages/gtk-2.0/gtk/__init__.py", line 52, in _init
_gtk.init_check()
RuntimeError: could not open display
Спасибо.
Ответы
Ответ 1
matplotlib не может подключиться к любому X-серверу для своего дисплея GTK.
Здесь есть несколько вариантов:
-
Запустите локальный X-сервер и включите переадресацию X11 в вашем ssh-клиенте, чтобы отобразить вывод на вашем локальном компьютере. Вы можете проверить, работает ли это, проверяя, что переменная среды $DISPLAY установлена на сервере.
-
Вызовите matplotlib.use(...), чтобы указать другой внешний интерфейс отображения, например рендеринг в pdf файл, перед импортом pyplot, например.
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
Подробнее см. http://matplotlib.org/faq/howto_faq.html#generate-images-without-having-a-window-appear.