在py2exe可执行文件中导入rich_ipython_小部件

在py2exe可执行文件中导入rich_ipython_小部件,python,pyqt,ipython,py2exe,Python,Pyqt,Ipython,Py2exe,我正在为我的python软件构建一个可执行文件,其中有一个交互式python终端小部件。如果我在python中运行它,它工作得很好,但是如果我双击用py2exe构建的.exe,它就无法运行。我隔离了问题,并将其归结为一行简单的代码: from IPython.qt.console.rich_ipython_widget import RichIPythonWidget 如果我将此唯一行放在test.py文件中并运行它,则不会出现错误。现在,我使用以下setup.py文件使用py2exe构建.e

我正在为我的python软件构建一个可执行文件,其中有一个交互式python终端小部件。如果我在python中运行它,它工作得很好,但是如果我双击用py2exe构建的.exe,它就无法运行。我隔离了问题,并将其归结为一行简单的代码:

from IPython.qt.console.rich_ipython_widget import RichIPythonWidget
如果我将此唯一行放在test.py文件中并运行它,则不会出现错误。现在,我使用以下setup.py文件使用py2exe构建.exe:

from distutils.core import setup
from py2exe.build_exe import py2exe

setup(name = "Test", 
      console=[{"script":"testShell.py"}], options={})
然后,运行可执行文件时产生的错误消息为:

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:   'pyqt'
PyQt4 installed:                 False
PySide >= 1.0.3 installed:       False
Tried to load:                   ['pyqt']
由于应用程序是在python中工作的,这意味着问题不是pyqt没有安装,而是没有找到


我在这里面对一堵墙,请告诉我您是否有线索?

我已通过修改文件
“qt\u loader.py”
(在
C:\Python27\Lib\site packages\IPython\external
中)修复了完全相同的问题

您需要做的只是强制
“has\u binding”
函数返回
“True”
。 问题在于
“imp.find_模块”
,该模块不适用于py2exe


在这里,这实际上是一个“假阳性”(即在没有实际问题的情况下测试失败)。跳过测试解决了这个问题。

看起来py2exe无法确定需要PyQt4还是PySide。大多数情况下,通过使用packages选项来帮助py2exe无法纠正此类错误,例如optins={“packages:'PyQt4}谢谢您的评论。我确实尝试按照您的建议添加此包。但这没有帮助:packages=['matplotlib','pylab','pytz','tables','numexpr','PyQt4']运行可执行文件时出现了什么错误?还是相同,还是不同?