Я действительно хочу переключиться на Python 3, но Ubuntu 14.04 мешает делать так при использовании платформы IPython+pylab.
Мои настройки: Я установил большую часть важного использования пакетов pip
вместо aptitude
. Пакеты Thes включают numpy 1.10.1, scipy 0.16.1, matplotlib 1.5.0, pylab 0.1.0 и IPython 4.0.1.
Я также установил использование python3-pyside 1.2.1 и python3-pyqt5 5.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, я получаю a Segmentation fault (core dumped)
.
Это - проблема, которую я имею в течение приблизительно 3 месяцев теперь. Я уже отправил несколько вопросов здесь: Действительно устанавливая PyQt4/5 для python 3.4 на надежном человеке и https://stackoverflow.com/questions/32007733/pip-install-pyside-fails. Я попробовал, вероятно, почти все комбинации установки pyside/pyqt5/numpy/scipy/matplotlib/ipython/pylab через зернышко/способность. Ничто, кажется, не работает правильно.
На 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