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

☆樱花仙子☆ 提交于 2019-12-06 02:07:57

问题


I created an executable with py2exe on a 64bit windows 7 machine, and distributed the program.

On a windows xp 32bit machine the program refuses to run exhibiting the following behavior:

a popup window says: program.exe is not a valid win32 application.

The command prompt window says "access denied"

I checked for permissions and the user has full control and complete ownership of the file and its parent directories. So that can't be the issue.

The only feasible possibility I can image is an OS/architectural incompatibility. How should I fix this?

My setup.py file used to generate the executable:

from distutils.core import setup
import py2exe

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

I ran the following to generate the exe:

python setup.py py2exe

回答1:


I think you just need to install 32-bit python and 32-bit py2exe on your machine.... see Can 64-bit python create 32-bit Windows executables




回答2:


A common problem when you generate executable on Windows 7 and deploy on Windows XP.

According with the py2exe tutorial, you need include the MVC DLL. But the tutorial is old and the script given search only in one directory. Before, the directory contained all DLL and the manifest, but nowadays it contains only the DLL. You need to specify another directory for the manifest file. If you don't do that, you will have this kind of error:

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

If you are on Windows 7 64 bits, you need the Microsoft Visual C runtime DLL. Don't forget the manifest that isn't in the same directory in Windows 7. You need to adapt the script like this:

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,
)

Now you can deploy the "dist" directory that contains all files and dependencies.



来源:https://stackoverflow.com/questions/6378673/executable-made-with-py2exe-doesnt-run-on-windows-xp-32bit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!