Подтвердить что ты не робот

Matplotlib не будет рисовать python3

Я установил matplotlib успешно в virtualenv. Теперь я пытаюсь его привлечь. Я знаю, как изменить бэкэнд, но у меня много проблем, чтобы понять, что изменить.

Кто-нибудь сумел полностью работать с python3? Если да, то как?

Я пробовал кучу вещей. Я прошел через все бэкэнды, чтобы увидеть, что все жалобы, а не я пытаюсь заставить только одного из них работать.

Также стоит отметить, что моя цель - интегрировать его в приложение Pyramid.

Вот что произошло до сих пор для всех разных бэкэндов:

  • Agg: это был бэкэнд по умолчанию. он не рисует
  • GTK: требует pygtk, который, по-видимому, не был перенесен на python3
  • GTKAgg: ditto
  • GTKCairo: говорит, что "требуемый пакет gtk" предполагает что-то в соответствии с вышеприведенными строками
  • FltkAgg: Не похоже, что у него есть версия python3. Несмотря на то, что он упоминается в часто задаваемом FAQ пользователя python3. Наверное, это было просто волнение. gosh darnit
  • MacOSX: Я запускаю ubuntu. считается неуместным
  • QtAgg: требуется pyqt. см. Qt4Agg
  • Qt4Agg: см. Установка PyQt4 в virtualenv
  • TkAgg: ImportError: невозможно импортировать имя _tkagg. Я могу запустить импорт tkinter в интерпретаторе, хотя, поэтому я не совсем уверен, что сломалось еще
  • WX: ImportError: Matplotlib backend_wx и backend_wxagg требуют wxversion, которая не была найдена
  • WXAgg: ditto
  • CocoaAgg: ImportError: для бэкэнда CococaAgg необходимо установить PyObjC!
  • GTK3Cairo: ImportError: сервер GTK3 требует установки pygobject. Я попытался установить его, но когда я пытаюсь настроить его с помощью правильного питона, он жалуется на отсутствующие заголовки.
  • GTK3Agg: нет модуля с именем cairo. но я думаю, что я удалю по той же проблеме, что и выше.
  • cairo: Cairo backend требует, чтобы pycairo был установлен
  • emf: Вы должны сначала установить pyemf из http://pyemf.sf.net. Похоже, что он должен делать вещи windowssey, поэтому это не может быть хорошим выбором.
  • gdk: нет модуля под названием gobject
  • pdf: выполняется, но не рисует
  • pgf: ditto
  • ps: ditto
  • svg: ditto
  • шаблон: ditto.

script Я использую для проверки моего бэкэнда:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()

До сих пор я потратил waaay слишком много времени, пытаясь заставить python3.2 и qt4 играть хорошо, и у меня, похоже, все время возникают проблемы. Поэтому вместо того, чтобы продолжить мой подход к пробным и ошибкам, я хочу спросить:

  • Каков наилучший вариант для Python3.2 и Pyramid?
  • Как мне это сделать?

Тем временем я продолжу процесс пробной ошибки и обновляю свой вопрос по мере того, как я иду.

ПРИМЕЧАНИЯ на вещи, которые я пытаюсь

Для TkAgg:

Так как tkinter импортирует правильно, я предполагаю, что он установлен правильно (если я ошибаюсь, я полагаю, есть способ проверить его?). У этого парня http://ask.sagemath.org/question/626/sage-python-import-matplotlib-no-module-named была аналогичная проблема, но я уверен, что его настройка отличается от моей. Решение заключалось в том, чтобы найти tkagg.py в недрах каталога пакетов сайтов python3.2 и отредактировать выражение о нарушении для импорта. Мне трудно поверить, что корабли matplotlib сломаны (и я не могу запустить модифицированный код, предложенный...)

Для материала WX:

wxPython для Python 3 говорит, что пока еще нет поддержки для python3. Кроме того, wxPython не упоминает python3 на своем сайте, поэтому я предполагаю, что нет-go. исчерпание опций:/

Cocoa:

То же: Написание приложений Cocoa в Python 3

EMF:

ditto: http://pyemf.sourceforge.net/README.html

4b9b3361

Ответ 1

Я столкнулся с одной и той же проблемой, но после долгих усилий мне удалось заставить TkAgg работать (что давало ошибку импорта для _tkagg). Немного поздно, но кто-то может найти это полезным.

FWIW Я решил проблему следующим образом (для использования TkAgg):

  • Установлен tk-dev из диспетчера пакетов
  • Переустановлено python3-tk из диспетчера пакетов
  • Восстановлено и переустановлено matplotlib из источника
  • (и, конечно, установка TkAgg в matplotrc)

Если вы считаете, что установлены tk-dev и python3-tk правильно, вам нужно перестроить и переустановить matplotlib, чтобы он генерировал _tkagg.py в вашем каталоге backends.

Я использую Python3.3 (numpy 1.7) на LM14. Но я думаю, что он должен работать на Ubuntu/Python3.2

Ответ 2

Я делаю исходные сборки python 3.3.2 и matplotlib. Как отмечалось выше, TkAgg работает. Если вы строите все из источника:

  • sudo apt-get install tk-dev
  • Восстановить python3 (make clean;./configure; make)
  • Очистить matplotlib (удалить яйцо из virtualenv, удалить объекты кеша из ~/.config/matplotlib)
  • Восстановленный matplotlib из источника (rm -r build/; python setup.py build; установка python setup.py)

Наконец-то выяснилось, что глупая поле появляется с моей x = y-строкой.

ч....

Ответ 3

Matplotlib, похоже, сделал большой шаг к Python 3 с их 1.2.x release. matplotlib 1.2.0rc2 (+ numpy 1.7.0b2) работает для меня с

  • Python 3.2.2 (virtualenv на Linux Mint 12)
  • Python 3.3.0 (локальная установка из источника)

В обоих случаях matplotlib сообщает "TkAgg" в качестве используемого бэкэнд.

К сожалению, я не знаю, как и как это может работать с Pyramid.

Ответ 4

Я написал ответ для обеспечения matplotlib в Python 3 virtualenv в Ubuntu 16.04 использует бэкэнд TkAgg в https://askubuntu.com/a/785506/15003, который может быть полезен здесь. Результатом является установка tk-dev, активация virtualenv и переустановка matplotlib в virtualenv:

sudo apt install tk-dev
source venv/bin/activate
pip --no-cache-dir install -U --force-reinstall matplotlib

python -c 'import matplotlib as mpl; print(mpl.get_backend())' должен теперь сказать TkAgg.