[英]wxPython py2exe app not bundling properly?
我有一个wxPython应用程序,正在尝试使用py2exe使其成为exe,但是遇到了一些麻烦。 我在MSVCP90.dll
所在的目录中包含MSVCP90.dll
,在py2exe完成后,它在启动exe时显示“由于MSVCR90.dll丢失,程序无法启动...”。 为什么找不到呢?
在py2exe'ing的同时,我还得到了以下信息:
The following modules appear to be missing
['Carbon', 'Carbon.Files']
...
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.
...
OLEAUT32.dll - C:\PATH
USER32.dll - C:\PATH
...
MSVCP90.dll - C:\PathToTheDllInMyScriptsFolder
我在这里想念什么吗? 将.py wxPython应用程序转换为.exe wxPython应用程序有多困难?
我的py2exe也有类似的问题。 我的项目使用了其他库,例如wxPython和Requests。
这为我工作:
使用gui2exe创建项目
指定非常基本的设置,例如目标类和数据文件(在我的情况下是图像,sqlite数据库等)并编译项目。
在dist
目录中,您将找到应该在我们的计算机上工作的已编译项目。
在dist
创建目录Microsoft.VC90.CRT
将C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375
文件msvcm90.dll
, msvcp90.dll
和msvcr90.dll
复制到此目录
还复制C:\\WINDOWS\\WinSxS\\Manifests\\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375.manifest
,但重命名为Microsoft.VC90.CRT.manifest
我已经使用Win XP 32位和Python 2.7.3做到了这一点,并成功在另一台xp机和Windows 7上启动了已编译的应用程序。
您是否有任何尝试pyinstaller的愿望? 我也曾为wxPython项目尝试过py2exe并收到许多晦涩的错误。 Pyinstaller在第一次尝试时就发现了,我认为它甚至更容易。
经过将近一年的尝试,但没有成功。 终于明白了。 您必须排除两个文件“ msvcp90.dll”,“ msvcr71.dll”。
dll_excludes = ['libgdk-win32-2.0-0.dll','libgobject-2.0-0.dll','tcl84.dll','tk84.dll','msvcp90.dll','msvcr71.dll']
解决此问题的方法是从py2exe软件包中排除MSVCP90.dll。 这是执行此操作的我的一个安装脚本的一部分:
dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll',
'tk84.dll','MSVCP90.dll']
setup(
data_files = data_files,
options = {"py2exe": {"compressed": 2,
"optimize": 2,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
"dist_dir": "dist",
"xref": False,
"skip_archive": False,
"ascii": False,
"custom_boot_script": '',
}
},
zipfile = None,
windows = [filename]
)
然后,您将负责确保在最终用户的计算机上安装了MS Visual C ++运行时。 你可以在这里得到它:
http://www.microsoft.com/zh-cn/download/details.aspx?id=29
我的经验是,很少找到缺少可视c运行时的Windows机器,但是您需要准备好以防万一。
麦克,祝你好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.