Matplotlib не отображает график в virtualenv - программирование
Подтвердить что ты не робот

Matplotlib не отображает график в virtualenv

У меня есть pip, установленный matplotlib в моем virtualenv, и я пытаюсь построить простой граф. Я использую Eclipse и PyDev. Когда я запускаю script из 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. Проблема как-то связана с моей конфигурацией. И просто для того, чтобы прояснить ситуацию, я НЕ ПОЛУЧАЮ ЛЮБЫЕ сообщения об ошибках. Это просто, что окно не появится.

Спасибо

4b9b3361

Ответ 1

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

enter image description here

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

pip install numpy
pip install scipy
easy_install matplotlib

Ответ 2

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

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

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

Ответ 3

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

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 [email protected]:matplotlib/matplotlib.git
cd matplotlib
python setup.py

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

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

python setup.py

вы увидите, что бэкэнд Tk включен. Выполнение

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

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

Ответ 4

Если у вас установлена ​​версия 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.

Ответ 5

Я использую 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