2014-02-07 2 views
0

Я использую python3.3.3, и я установил вручную scipy 0.13.3, matplotlib 1.3.1, numpy 1.8.0 (скачанный с sourgeforge и создающий их, как $ sudo python3 setup.py или что бы ни сказал файл readme). Я использую Linux Mint Maya 13.04 64bit с KDE 4.8.5Не удается увидеть графики с pylab

, когда я бегу:

$ python3 
Python 3.3.3 (default, Jan 27 2014, 12:55:04) 
[GCC 4.6.3] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import pylab as pl 
>>> pl.figure(figsize=(8, 6), dpi=80) 
<matplotlib.figure.Figure object at 0x7f2025397450> 
>>> pl.show() 
>>> 

я ничего не получаю. Я googled это, и кажется, что есть проблема с бэкэнд. Поэтому я иду в файл

/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/mpl-data/matplotlibrc 

найти линию

backend : agg 

и изменить AGG либо TkAgg, WXAgg, GTKAgg, PS, PDF ЭСТ.

Для PS, PDF, я также не получаю результатов. Если я использую TkAgg ЭСТ, я получаю ошибки при импорте pylab т.е.

>>> import pylab as pl 
Traceback (most recent call last):                                                 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/pylab.py", line 1, in <module> 
    from matplotlib.pylab import * 
    File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/pylab.py", line 269, in <module> 
    from matplotlib.pyplot import * 
    File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/pyplot.py", line 98, in <module> 
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() 
    File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/backends/__init__.py", line 28, in pylab_setup 
    globals(),locals(),[backend_name],0) 
    File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py", line 8, in  <module> 
    import tkinter as Tk, tkinter.filedialog 
    File "/usr/local/lib/python3.3/tkinter/__init__.py", line 40, in <module> 
    import _tkinter # If this fails your Python may not be configured for Tk 
ImportError: No module named '_tkinter' 
>>> 

Я должен сказать, что у меня нет никаких проблем на Python 2.7. Кроме того, я попытался установить python3 и другие пакеты из диспетчера пакетов, но это не сработало (т. Е. Я не смог импортировать scipy).

Любые идеи?

+0

Я не уверен, в чем проблема, но изменение кода сайта-пакетов кажется плохим решением любой проблемы, связанной с переносимостью. Не было бы безопаснее делать что-то вроде 'matplotlib.use ('QtAgg')' в вашем конкретном коде, а не изменять исходный код стандартных библиотек? – chase

+0

@chase fair enought, но не решит проблему. Использование приведенного выше дает ошибку, так как это непризнанный бэкэнд. При использовании «pdf» или «GTKAgg» я не получаю никаких результатов, а при использовании «gtk» я получаю, что этот вызов не имеет эффекта – stefanos

ответ

0

Хорошо, я достиг раствора после этих направлений How to configure PyQt4 for Python 3 in Ubuntu?

я не знаю, если остальные вещи я сделал были necessery, но это так, как я это сделал. Во-первых я удалил python3.3 вручную с помощью

rm -r /usr/local/lib/python3.3 
rm -r /usr/local/bin/python3* 

Затем установленный python3, python3-DEV, python3-Numpy, python3-SciPy, python3-PyQt4 с помощью Synaptic. Кроме того, скачал и скомпилировал matplotlib (используя указания из файла readme). В конце я использовал вышеупомянутый ответ в stackexchange, чтобы установить PyQT4 (как вы можете видеть, я уже установил его из синаптики, SIP также, но он не работал).

Finnaly я должен был изменить бэкенд использовать Qt4Agg, поэтому я нашел файл:

/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/mpl-data/matplotlibrc 

нашел линию бэкэндом и изменил его от AGG до Qt4Agg

# backend : agg 
backend : Qt4Agg 

и Теперь у меня нет никаких проблем с участками

(Или я мог бы сделать использовать в качестве предложенного matplotlib.use («Qt4Agg»))

Спасибо за помощь!

1

Многие из этих бэкэндов не будут создавать графику gui с pl.show(), например agg, ps и pdf, они предназначены для создания файлов. Другие, которые вы пытаетесь использовать, не подходят для вашей системы, потому что у вас их нет. Например, для TkAgg вы должны установить TkInter. См. Это matplotlib backend FAQ для получения дополнительной информации. Поскольку вы используете KDE, вы, вероятно, захотите использовать «Qt4Agg», но это зависит от того, что вы установили в своей системе. Изменение файла matplotlibrc это один из способов изменить бэкенд постоянно, но вы также можете использовать следующие, чтобы изменить его на лету, что полезно, если, например, вы хотите создавать файлы вместо GUI:

import matplotlib 
matplotlib.use('Qt4Agg') 

Вы должен вызвать это, прежде чем импортировать другие модули matplotlib.

+0

для «QTAgg», я получаю сообщение об ошибке; Нераспознанная бэкэнд-строка «qtagg». Для «QT4Agg» у меня есть еще один ImportError: нет модуля с именем «sip». Я предположил, что у меня нет этих базовых компонентов, но как их установить? И сможет ли matplotlib увидеть их? – stefanos

+0

Я добавил ссылку на matplotlib backend faq, которая будет включать в себя то, что должно быть установлено для использования каждого бэкэнда. Вы можете легко установить модули с помощью модуля «pip install» или «easy_install module» – pseudocubic

+0

Спасибо за совет. Я пытался за последние полчаса установить TkInter, WXAgg, Agg, но я не могу установить их в конце концов, это слишком сложно. Есть ли что-нибудь более прямолинейное? – stefanos

Смежные вопросы