Ubuntu 14.04 上的 Python3 + ipython + pylab

Ubuntu 14.04 上的 Python3 + ipython + pylab

我真的很想切换到 Python 3,但是 Ubuntu 14.04 在使用 IPython+pylab 框架时很难做到这一点。

pip我的设置:我使用而不是安装了大多数重要的软件包aptitude。这些软件包包括numpy 1.10.1scipy 0.16.1matplotlib 1.5.0pylab 0.1.0IPython 4.0.1

我也安装了python3-pyqt5 5.2.1python3-pyside 1.2.1使用aptitude

matplotlib从内部使用IPython效果很好:

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

但是当我尝试使用时,问题就开始了pylab,无论是通过调用ipython --pylab还是从 IPython 内部调用pylab。这是我在这两种情况下得到的结果:

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 时,我得到了。CtrlDSegmentation fault (core dumped)

这个问题困扰了我大约 3 个月。我已经在这里发布了几个问题:真正在 Trusty 上为 Python 3.4 安装 PyQt4/5https://stackoverflow.com/questions/32007733/pip-install-pyside-fails。我尝试了几乎所有通过 pip/aptitude 安装 pyside/pyqt5/numpy/scipy/matplotlib/ipython/pylab 的组合。似乎没有一个能正常工作。

答案1

在 Ubuntu 14.04 上,我可以启动ipython然后导入 PyQt5,但如果我运行ipython --matplotlib qt5,它会显示pyqt5未安装。

然后我查看了代码,发现在文件中/usr/local/lib/python3.4/dist-packages/IPython/external/qt_loaders.py,它ipython检查QtCoreQtGuiQtsvg并且在 的情况下pyqt5也检查qtwidgets。当然,我确实安装了QtCoreQtGuiQtWidgets,但没有Qtsvg。我运行了 synaptic 并安装了Qtsvgpyqt5python3-pyqt5.qtsvg)。现在它可以正常工作了。

总结:安装python3-pyqt5.qtsvg软件包:

sudo apt-get install python3-pyqt5.qtsvg

相关内容