用py2exe捆绑PyQwt
问题描述:
我有一个py2exe的标准安装脚本,我将基于PyQt的应用程序捆绑到Windows的.exe文件中。用py2exe捆绑PyQwt
今天我试了一个简单的脚本,它使用了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
肯定是存在的。
我似乎无法找到有关此错误的任何有用的信息。什么可能导致它?谢谢。
答
py2exe并不是将Python应用程序的exe文件放在一起的唯一方式,也可能不是最好的方式 - 尤其是,它几乎不支持pyqt。请恳请您,查看PyInstaller,了解有关PyQt(以及Linux和Mac,您应该关心的内容) - 请确保您使用SVN头结帐,而不是“已发布”版本,该版本在这一次严重过时(希望很快就会消失的问题......)。
答
一些选项:
- 尝试使用py2xe
bundle_files options
(3,2,1)(特别是如果你把他们都在一个大图书馆拉链,某些DLL不喜欢这样)播放。 - 确保在windows \ system32或可执行文件的目录下存在
msvcp71.dll
的副本。 - 尝试排除的dll明确地(添加Qwt.pyd到
dll_excludes
选项(建成后)复制Qwt.pyd(和_Qwt.pyd如果存在的话)到你的可执行文件路径。
亚历克斯,py2exe工程只是为什么你喜欢PyInstaller?对我来说,它似乎不太受支持,更新和一些陈旧的使用。 – 2009-05-31 08:11:46