2012-01-29 3 views
16

У меня есть pip, установленный matplotlib в моем virtualenv, и я пытаюсь построить простой граф. Я использую Eclipse и PyDev. Когда я запускаю скрипт из Eclipse, он не отображает никакого графика вообще. Я пробовал предложения, предложенные в других вопросах, таких как добавление plt.ion(), но это тоже не работает. Я также попробовал тот же код в консоли и снова ничего. Это проблема с моей конфигурацией? Если да, то как я могу это исправить?Matplotlib не отображает график в virtualenv

Неисправный код:

import matplotlib.pyplot as plt 
    radius = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] 
    area = [3.14159, 12.56636, 28.27431, 50.26544, 78.53975, 113.09724] 
    plt.plot(radius, area) 
    plt.show() 

код не является проблемой. Он работает просто отлично от virtualenv. Проблема в том, что я использую его в virtualenv. Проблема как-то связана с моей конфигурацией. И просто для того, чтобы прояснить ситуацию, я НЕ ПОЛУЧАЮ ЛЮБЫЕ сообщения об ошибках. Просто окно не появится.

Благодаря

+0

Вы можете начать показ кода, который не работает – joaquin

+1

Благодарим за редактирование. Насколько я понимаю сейчас, ваш вопрос каким-то образом вводит в заблуждение, поскольку, похоже, это проблема (также) pydev. Если вы можете отбросить eclipse-pydev в качестве проблемы (возможно, на консоли или в режиме ожидания вместо pydev), вы должны изменить свой заголовок и теги, чтобы изменить pydev на virtualenv. Это поможет правильным людям взглянуть на вопрос. – joaquin

+0

Как это не удалось? любые сообщения об ошибках? –

ответ

9

Ваш код работает в моем virtualenv на OSX 10.7 с Python 2.7:

enter image description here

Какая версия Python вы используете внутри virtualenv? Я предполагаю, что либо вы не установили зависимость matplotlib, либо ваша установленная зависимость не была выполнена должным образом. На Python 2.7 вот что я сделал, чтобы установить matplotlib. Можете ли вы попробовать эти шаги в новом virtualenv и посмотреть, работает ли он на вас?

pip install numpy 
pip install scipy 
easy_install matplotlib 
+1

Я попробую это (хотя я установил numpy и scipy), но почему вы использовали easy_install для matplotlib и pip для других –

+0

У меня были проблемы с установками matplotlib с pip в прошлом. – drbunsen

+0

Эй, это сработало :) .. Проблема в том, что я не использовал easy_install для установки matplotlib. По-видимому, проблема с пипсом! Спасибо за ответ! –

6

Во-первых, вы можете проверить:

http://matplotlib.org/faq/installing_faq.html#matplotlib-compiled-fine-but-nothing-shows-up-when-i-use-it

Чтобы понять, что происходит не так, проверьте Matplotlib с помощью мерзавца вместо либо пип или easy_install. Мы будем делать больше руководства по установке:

git clone [email protected]hub.com:matplotlib/matplotlib.git 
cd matplotlib 
python setup.py 

Это напечатает конфигурацию какого пипа или easy_install сделало бы. Просмотрите «ДОПОЛНИТЕЛЬНЫЕ ЗАВИСИМОСТИ ЗАВИСИМОСТИ» и убедитесь, что некоторые из них, которые производят окна, включены (Tkinter, Gtk +, Mac OS X native, Qt, Cairo и т. Д.). Если вы видите, что ни один из них не доступен, вам необходимо установить некоторые из этих библиотек для вашей операционной системы, прежде чем продолжить установку matplotlib.

После установки скажем, Tk (на убунту: sudo apt-get install tcl-dev tk-dev), а затем, когда вы повторно запустить

python setup.py 

вы увидите, что Tk бэкенд является включен. Продолжая

python setup.py build && python setup.py install 

вы должны получить и работает ... но в этот момент вы, возможно, даже просто удалить весь каталог мерзавец клон и вернуться к установке с пип.

+0

Это сработало для меня. Я установил с помощью pip, а не с easy_install. – jgomo3

+0

В моей среде, в магии, глобальный пакет matplotlib использовал TkAgg просто отлично, но не были установлены «tcl-dev» или «tk-dev». Решение, которое устранило проблему. Использование 'easy_install' и' pip' ничего не делало. Тем не менее, перед установкой пакетов Tk/Tcl моя настройка virtualenv по-прежнему была в состоянии использовать модуль Python Tk и рисовать окна ... –

+0

Проблемы с tcl внутри virtualenvs документированы, но пока не исправлены. См. [Этот билет для virtualenv] (https://github.com/pypa/virtualenv/issues/93). Предложение об изменении 'activate.bat' для установки пути к файлам TCL в базовой установке python исправило это для меня. – turtlemonvh

2

Я использую Ubuntu 12.04 и Python 2.7.3 на своем компьютере и , когда я использую matplotlib 1.2.0 в своем virtualenv, show() не работал, пока я не обновил его до 1.2.1 ... Все ошибки, которые у меня были, ушли ...

Делая это, вы будете устанавливать все зависимости от Matplotlib:

sudo apt-get build-dep python-matplotlib 

Чтобы получить последнюю версию Matplotlib вы можете использовать:

pip install matplotlib 

или обновить его:

pip install matplotlib --upgrade 
9

У меня была та же проблема и установка matplotlib с использованием easy_install вместо pip не решился. В конце концов, я узнал, что проблема заключалась в том, что matplotlib не смог найти какой-либо бэкэнд для построения графика.

Я решил его, выполнив следующие действия (я использую Debian хриплый):

pip uninstall matplotlib 
sudo apt-get install tcl-dev tk-dev 
pip install matplotlib 
+1

Было так же просто! (работает на стандартном Ubuntu 14.04 LTS) –

+0

любые решения для OSX, которые так просто? –

4

Если у вас есть версия Matplotlib, установленной на системной версии питона, то вы можете связать с версией системного Matplotlib. На моей машине я сделал следующее:

cd $VIRTUAL_ENV/lib/python2.7/site-packages 
ln -s /usr/lib/pymodules/python2.7/matplotlib . 
ln -s /usr/lib/pymodules/python2.7/matplotlib-1.1.1rc . 

Это позволяет избежать многих проблем с получением Matplotlib работать в virtualenv, но ограничивает Вас, используя системную версию Matplotlib (который на этой машине не так уж плохо).

Этот метод также позволяет использовать пакеты -no-site-packages, но для вас все равно работает matplotlib.

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