我在 ubuntu 14.04.2 (trusty) 上同时使用 Python 3 和 Python 2。我尝试运行ipython --pylab
,但使用 Python 3 时会失败(使用 Python 2 时运行良好)。失败是因为它需要 QT4/5 或 PySide。
我无法安装 PySide,但我可以轻松安装 PyQt4
sudo aptitude install python3-pyqt4 python3-pyqt5
然而,这似乎没有起到作用。输出ipython --pylab
是
ImportError: cannot import name 'QtCore'
matplotlib
尝试QtCore
从导入后会抛出该错误PyQt5
。有趣的是,即使清除了 PyQt5,它也会在那里失败(但会出现错误No module named
PyQt5`)
matplotlib
这两个软件包有问题吗python3-pyqt4/5
? 有可能python-pyqt4/5
甚至不支持吗python3.4
?
更新
清除python3-pyqt4
和python3-pyqt5
并安装后python3-pyside
,ipython
与 配合良好pylab
。这在我链接到的 SO 问题中有记录。
现在,pyside
安装完成后,我再次安装了它python3-pyqt5
,以便回答评论中的问题,现在QtCore
已经正确导入(在和python
中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']
现在,在控制台%pylab
中再次输入ipython
作品。这是一个非常奇怪的行为。
更新(2)
似乎pyside
没有 ubuntu 包python3-pyqt5
,实际上不起作用。我可以ipython --pylab
通过这种方式运行而不会出现任何错误,但是当我尝试plot()
或 时scatter()
,它会失败
AttributeError: 'figure()' is not a Qt property or a signal
pylab
所以,这似乎是我能完成工作的唯一方法适当地,它安装两者python3-pyside
,看到上面引用的python3-pyqt5
奇怪,尝试ImportError
%pylab
再次, 和工作。