Matplotlib не отображает график в virtualenv - PullRequest
16 голосов
/ 29 января 2012

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

Код ошибки:

    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. Проблема как-то связана с моей конфигурацией. И просто чтобы прояснить ситуацию, я не получаю никаких сообщений об ошибках. Просто окно не будет отображаться.

Спасибо

Ответы [ 5 ]

9 голосов
/ 31 мая 2013

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

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

pip uninstall matplotlib
sudo apt-get install tcl-dev tk-dev
pip install matplotlib
9 голосов
/ 01 февраля 2012

Ваш код работает внутри моего 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
6 голосов
/ 03 октября 2012

Прежде всего, вы можете проверить:

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

Чтобы увидеть, что идет не так, проверьте matplotlib, используя git вместо pip или easy_install. Мы собираемся сделать более ручную установку:

git clone git@github.com:matplotlib/matplotlib.git
cd matplotlib
python setup.py

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

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

python setup.py

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

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

должен заставить вас работать ... но на этом этапе вы можете даже просто удалить весь каталог git clone и вернуться к установке с помощью pip.

4 голосов
/ 23 января 2014

Если у вас установлена ​​версия matplotlib, установленная в вашей системной версии python, вы можете указать ссылку на системную версию 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.

2 голосов
/ 03 апреля 2013

Я использую 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...