繁体   English   中英

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

[英]executable made with py2exe doesn't run on windows xp 32bit

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

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

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

命令提示符窗口显示“访问被拒绝”

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

我可以成像的唯一可行的可能性是OS /架构不兼容。 我该怎么解决这个问题?

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

from distutils.core import setup
import py2exe

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

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

python setup.py py2exe

我想你只需要在你的机器上安装32位python和32位py2exe ....参见64位python可以创建32位Windows可执行文件

在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”目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM