我有一个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
绝对存在。
我似乎无法在网上找到有关此错误的任何有用信息。什么可能导致它?感谢。
答案 0 :(得分:4)
py2exe并不是唯一的方法,也许不是最好的方法,将Python应用程序的exe文件放在一起 - 特别是,它几乎不支持pyqt。拜托,请你查看PyInstaller,了解PyQt(以及Linux和Mac,如果你关心......) - 只要确保你使用SVN头结账,而不是“发布”版本,此时已严重过时(这个问题很快就会消失......)。
答案 1 :(得分:1)
一些选项:
bundle_files options
(3,2,1)(特别是如果你把它们放在一个大的库拉链中,有些dll不喜欢它)。msvcp71.dll
的副本。dll_excludes
选项,并且(在构建之后)将Qwt.pyd(和_Qwt.pyd,如果存在)复制到可执行路径。