2

我有一个 py2exe 的标准设置脚本,我将基于 PyQt 的应用程序捆绑到 Windows .exe 文件中。

今天我尝试了一个使用 PyQwt 模块的简单脚本,它似乎不起作用。py2exe 运行正常,但是当我执行它创建的 .exe 时,它​​将以下内容转储到日志文件中并且不运行:

Traceback (most recent call last):
  File "qwt_test.pyw", line 5, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "PyQt4\Qwt5\__init__.pyo", line 32, in <module>
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading PyQt4\Qwt5\Qwt.pyd

当我在目录中查找时PyQt4\Qwt5\build\bdist.win32\winexe\collect-2.5肯定Qwt.pyd存在。

我似乎无法在网上找到有关此错误的任何有用信息。什么可能导致它?谢谢。

4

2 回答 2

4

py2exe 不是将 Python 应用程序的 exe 文件放在一起的唯一方法,也许也不是最好的方法——特别是,它几乎不支持 pyqt。请,我恳求你,检查PyInstaller,它确实知道 PyQt(以及 Linux 和 Mac,如果你在乎的话......)——只要确保你使用 SVN 头结帐,而不是“发布”版本,它在这个时间已经严重过时了(这个问题希望很快就会消失......)。

于 2009-05-31T07:30:49.307 回答
1

一些选项:

  1. 尝试使用 py2xe bundle_files options(3, 2, 1) (特别是如果您将它们全部放在一个大库 zip 中,一些 dll 不喜欢这样)。
  2. msvcp71.dll确保在 windows\system32 或可执行文件的目录中存在的副本。
  3. 尝试明确排除 dll(将 Qwt.pyd 添加到dll_excludes选项中,并(在构建后)将 Qwt.pyd(和 _Qwt.pyd,如果存在)复制到您的可执行路径。
于 2009-06-05T17:16:14.133 回答