python - 在 py2exe 可执行文件中导入 rich_ipython_widget

标签 python pyqt ipython py2exe

我正在为我的 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_loader.py”(在C:\Python27\Lib\site-packages\IPython\external中)解决了这个完全相同的问题。

您要做的只是强制“has_binding”函数返回“True”。 问题出在“imp.find_module”上,它不能与py2exe一起工作!

这里,这实际上是一个“误报”,(即测试失败但没有实际问题)。跳过测试可以解决问题。

关于python - 在 py2exe 可执行文件中导入 rich_ipython_widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917087/

相关文章:

qt - 如何将子窗口放入主窗口中(PyQt)

docker - Windows 7 jupyter 笔记本 - ImportError : No module named 'tensorflow'

python - 如何从 Qt Designer 导入 UI

javascript - 如何在 Jupyter 中使用 JavaScript 选择当前单元格?

opencv - 如何克服 ipython 中 opencv 的导入错误

python - 在Python中的嵌套字典中添加键

python - 如何通过MNE-Python读取Enobio8设备EGG信号?

python - 更新 Google NDB 实体上的多个字段

python - 在生产服务器上工作的端口值应该是多少?

python - pyqt中的数据库 View