Bac*_*ach 2 pyside python3 qt5 ipython pyqt5
我很想切换到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.1aptitude。
matplotlib从内部使用IPython效果很好:
import matplotlib.pyplot as plt
plt.plot([0, 1], [1, 2])
plt.show()
Run Code Online (Sandbox Code Playgroud)
pylab但是当我尝试通过调用或从 IPython 内部ipython --pylab调用来使用 时,问题就开始了。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']
Run Code Online (Sandbox Code Playgroud)
所以,如果我理解正确的话,它不会识别已PyQt5安装的。这很奇怪,有两个原因:首先,import PyQt5双方import PyQt5.QtCore都没有抱怨。第二个原因是对 pylab 的第二次调用可以完美地工作,并且使用 Qt5!
Using matplotlib backend: Qt5Agg
Populating the interactive namespace from numpy and matplotlib
Run Code Online (Sandbox Code Playgroud)
然而,这还有另一个后果。成功绘制后(例如,使用),当我使用-plot([0, 1], [1, 2])退出 IPython 时,我得到一个.CtrlDSegmentation fault (core dumped)
这个问题我已经困扰了大约3个月了。我已经在这里发布了几个问题:ReallyInstalling PyQt4/5 for python 3.4 on trusty和/sf/ask/2240541341/。我已经尝试了几乎所有通过 pip/aptitude 安装 pyside/pyqt5/numpy/scipy/matplotlib/ipython/pylab 的组合。似乎没有什么能正常工作。
小智 5
在 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。我运行了 synaptic 并安装了Qtsvg(pyqt5即python3-pyqt5.qtsvg)。现在可以了。
TL;DR:安装python3-pyqt5.qtsvg软件包:
sudo apt-get install python3-pyqt5.qtsvg
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1853 次 |
| 最近记录: |