使用PyQt5设置IPython Qtconsole

10 投票
4 回答
9871 浏览
提问于 2025-04-18 10:29

在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 个回答

1

我之前也遇到过同样的问题,不过最近更新的 brew 版本的 ipython 出现了 ImportError,这个错误里包括了 PyQt5(还有 PyQt4PySide)。所以如果之前用 PyQt5 不行,现在应该可以了。

我通过在 .bash_profile 中添加正确的 PYTHONPATH 解决了这个问题,即使是在我的 virtualenv 环境里也有效。(我没有足够的声望去给 oxtay 的回答点赞或评论,觉得在那儿更合适...)

1

设置环境变量 QT_API=pyqt5 解决了我遇到的同样问题。

3

我知道这个问题已经很久了,但我最近在设置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,这个可以很容易地从软件库中获取。

4

这个问题可能和你的 Python 路径有关。

我之前也遇到过几乎一样的问题。我是通过 Homebrew 安装的 PyQt,结果也收到了同样的错误信息。最后解决这个问题的方法是把下面这一行加到我的 .bash_profile 文件里:

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

因为我自己也是个初学者,所以不能再帮你更多了,但希望这能解决你的问题。

撰写回答