Python3 + ipython + pylab в Ubuntu 14.04

Я действительно хочу перейти на Python 3, но Ubuntu 14.04 затрудняет это при использовании инфраструктуры IPython+pylab.

Мои настройки: я установил большинство важных пакетов, используя pip скорее, чем aptitude, Пакеты включают numpy 1.10.1, scipy 0.16.1, matplotlib 1.5.0, pylab 0.1.0 и IPython 4.0.1.

Я также установил python3-pyqt5 5.2.1 и python3-pyside 1.2.1, используя aptitude,

С помощью matplotlib изнутри IPython работает хорошо:

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

Но проблема начинается, когда я пытаюсь использовать pylabлибо по телефону ipython --pylab или по телефону pylab изнутри IPython. Вот что я получаю в обоих случаях:

ImportError: 
    Could not load requested Qt binding. Please ensure that
    PyQt4 >= 4.7, PyQt5 or PySide >= 1.0.3 is available,
    and only one is imported per session.

    Currently-imported Qt library:   'pyqt5'
    PyQt4 installed:                 False
    PyQt5 installed:                 False
    PySide >= 1.0.3 installed:       True
    Tried to load:                   ['pyqt5']

Так что, если я правильно понимаю, он не признает, что PyQt5 установлено. Это странно по двум причинам; первый, import PyQt5 а также import PyQt5.QtCore оба не жалуются. Вторая причина в том, что второй вызов pylab работает отлично, и с Qt5!

Using matplotlib backend: Qt5Agg
Populating the interactive namespace from numpy and matplotlib

Однако есть еще одно последствие для этого. После построения успешно (скажем, с plot([0, 1], [1, 2])), когда я выхожу из IPython с помощью Ctrl-D, я получаю Segmentation fault (core dumped),

Это проблема у меня уже около 3 месяцев. Я уже разместил здесь пару вопросов: действительно устанавливаю PyQt4/5 для python 3.4 на trusty и https://stackoverflow.com/questions/32007733/pip-install-pyside-fails. Я пробовал, вероятно, почти все комбинации установки pyside/pyqt5/numpy/scipy/matplotlib/ipython/pylab через pip / aptitude. Кажется, ничего не работает должным образом.

1 ответ

На Ubuntu 14.04 я мог начать ipython а затем импортировать PyQt5, но если я запустил ipython --matplotlib qt5, Говорится pyqt5 не установлен

Затем я посмотрел в код и увидел в файле /usr/local/lib/python3.4/dist-packages/IPython/external/qt_loaders.py, тот ipython проверяет QtCore, QtGui, Qtsvg и в случае pyqt5 также для qtwidgets, Естественно, у меня было QtCore, QtGui а также QtWidgets установлен, но не Qtsvg, Я запустил синаптический и установил Qtsvg за pyqt5 (то есть python3-pyqt5.qtsvg). Теперь это работает.

TL; DR: установить python3-pyqt5.qtsvg пакет:

sudo apt-get install python3-pyqt5.qtsvg
Другие вопросы по тегам