使用PyQt5设置IPython Qtconsole
在OSX 10.9上,我安装了Qt5。后来又从源代码安装了Ipython、sip和PyQt5。现在遇到的问题是:当我尝试运行 ipython qtconsole
时,出现了一堆与这个目录(及其子文件夹)中的文件相关的错误。
/Library/Python/2.7/site-packages/IPython/
接着是
ImportError:
Could not load requested Qt binding. Please ensure that
PyQt4 >= 4.7 or PySide >= 1.0.3 is available,
and only one is imported per session.
Currently-imported Qt library: None
PyQt4 installed: False
PySide >= 1.0.3 installed: False
Tried to load: ['pyside', 'pyqt']
我猜问题可能是因为我安装的是PyQt5而不是PyQt4。这是问题所在吗?还是我遗漏了什么其他的东西?
有没有办法让我在使用PyQt5的情况下也能用qtconsole?如果没有,最简单的解决办法是什么?(最好是那种不需要在一台机器上同时安装两个版本的Qt库的方法)。
为了简洁起见,我没有贴出完整的错误信息。如果需要我提供这些信息以便更好地理解情况,请告诉我。
4 个回答
我之前也遇到过同样的问题,不过最近更新的 brew
版本的 ipython
出现了 ImportError
,这个错误里包括了 PyQt5
(还有 PyQt4
和 PySide
)。所以如果之前用 PyQt5
不行,现在应该可以了。
我通过在 .bash_profile
中添加正确的 PYTHONPATH
解决了这个问题,即使是在我的 virtualenv
环境里也有效。(我没有足够的声望去给 oxtay 的回答点赞或评论,觉得在那儿更合适...)
设置环境变量 QT_API=pyqt5 解决了我遇到的同样问题。
我知道这个问题已经很久了,但我最近在设置PyQt5的时候遇到了一些麻烦。
问题是PyQt5
虽然能安装,但有些子模块却安装不上。比如你可以试试下面的命令:
import PyQt5 #works
from PyQt5 import * # might fail
如果第二个命令失败了,那说明你的PyQt5设置有问题,你需要专注于解决这个问题。
具体来说,ipython+qt会尝试导入以下内容:
from PyQt5 import QtCore, QtSvg, QtWidgets, QtGui
如果这些子模块中有任何一个损坏或缺失,qt控制台就会默默地失败。
对我来说,问题出在PyQt5安装程序
没有成功创建QtSvg
的绑定,而ipython正是试图从PyQt5中加载这个模块。当你运行configure.py
时,使用-w
选项,你就能看到构建的所有细节,这样可以帮助你找到安装失败的具体原因。
在我的情况下,稍微在网上查了一下,我发现我缺少了QtSvg lib
,这个可以很容易地从软件库中获取。
这个问题可能和你的 Python 路径有关。
我之前也遇到过几乎一样的问题。我是通过 Homebrew
安装的 PyQt,结果也收到了同样的错误信息。最后解决这个问题的方法是把下面这一行加到我的 .bash_profile
文件里:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
因为我自己也是个初学者,所以不能再帮你更多了,但希望这能解决你的问题。