用py2exe创建的可执行文件不能在windows xp 32bit上运行

时间:2011-06-16 21:12:16

标签: python windows architecture py2exe

我在64位Windows 7计算机上使用py2exe创建了一个可执行文件,并分发了该程序。

在Windows xp 32位机器上,程序拒绝运行,表现出以下行为:

  

弹出窗口说:program.exe是   不是一个有效的win32应用程序。

     

命令提示符窗口显示“access   拒绝“

我检查了权限,用户具有完全控制权并完全拥有该文件及其父目录。所以这不是问题。

我能想象的唯一可行的可能性是操作系统/架构不兼容。我该如何解决这个问题?

我的setup.py文件用于生成可执行文件:

from distutils.core import setup
import py2exe

setup(console=['xerxes2excel.py'])

我运行以下命令来生成exe:

python setup.py py2exe

2 个答案:

答案 0 :(得分:7)

我认为你只需要在你的机器上安装32位python和32位py2exe ....见Can 64-bit python create 32-bit Windows executables

答案 1 :(得分:4)

在Windows 7上生成可执行文件并在Windows XP上部署时的常见问题。

根据py2exe教程,您需要包含MVC DLL。但是教程很旧,脚本只在一个目录中进行搜索。之前,该目录包含所有DLL和清单,但现在它只包含DLL。您需要为清单文件指定另一个目录。如果你不这样做,你会遇到这种错误:

this application has failed to start because the application configuration is incorrect

如果您使用的是Windows 7 64位,则需要Microsoft Visual C运行时DLL。不要忘记不在Windows 7中的同一目录中的清单。您需要调整脚本,如下所示:

data_files = [("VC90", glob(r'C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\*.*')),
            ("VC90", glob(r'C:\Windows\winsxs\Manifests\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91.manifest'))
]
setup(
    data_files=data_files,
    console = [{'script': "C:\test\my_program.py"}],
    zipfile = None,
)

现在您可以部署包含所有文件和依赖项的“dist”目录。

相关问题