我似乎无法使py2exe正常工作。我在cmd中运行了“python setup.py py2exe”,以及“python setup.py install”......当我尝试运行我的可执行文件时,我一遍又一遍地得到同样的错误:
一周之后,我开始变得非常沮丧,我希望今天能够解决这个问题。
我正在使用Python 2.7和py2exe v0.6.9。 64位Windows7
答案 0 :(得分:6)
最后,我可以为一个快乐的人而死。经过一个多星期的痛苦解决这个问题,我发现问题是我必须从SourceForge下载64位版本的py2exe。他们在顶部的“获取最新版本”链接是针对Python 2.5的,这是非常误导的,因为我认为它至少会使用它支持的最新版本的PYTHON,我相信这是我的版本, Python 2.7.1。
我必须进入“浏览所有文件”部分并手动导航到v0.6.9,然后选择适当的版本。
我现在可以通过运行“C:\ Python27 \ setup.py py2exe”创建一个可执行文件。
感谢所有人的帮助/回复。
答案 1 :(得分:3)
该错误中最重要的一行是最后两行 -
导入py2exe_util
ImportError:DLL加载失败:找不到指定的模块。
这意味着首先没有完全安装py2exe。尝试重新安装它。
答案 2 :(得分:2)
你需要一个与你的python安装架构相匹配的py2exe版本。 如果你有一个32位python安装,你需要一个win32 py2exe安装程序。 如果你有一个x64 python安装,你需要一个win64 py2exe安装程序。
就我而言,我使用的是64位机器,安装了32位python。 Source Forge'最新'链接提供了win64版本的py2exe(因为它检测到我的机器类型)。但它不起作用,我不断收到以下错误:
ImportError: DLL load failed with error code 193
我需要回到Source Forge并“浏览所有文件”以找到win32版本。
答案 3 :(得分:0)
我不确定我的问题是否与OP相同,但是由于我在寻找问题的解决方案时找到了该线程,因此我将添加发现的内容。
我的问题是在64位计算机上构建32位程序。该exe在其他64位计算机上工作正常,但引发 DLL加载失败:在其他32位计算机上找不到指定的模块错误。
我最终弄清楚的是py2exe包含了Windows DLL,这些Windows DLL不应包含在软件包中。删除这些DLL后,错误消失了。
py2exe具有显式排除dll的选项。以下是对我有用的代码片段:
setup(
...
options={
'bdist_esky': {
'freezer_module': 'py2exe',
'freezer_options': {
'dll_excludes': [
'CRYPT32.dll',
'IPHLPAPI.DLL',
'MPR.dll',
'MSWSOCK.dll',
'PSAPI.DLL',
'WTSAPI32.dll',
],
},
...
)