исполняемый сделал с py2exe не запускается на Windows ХР 32бит

Я создал исполняемый файл с py2exe на 64-битной машине windows 7 и распространил программу.

на 32-битной машине windows xp программа отказывается работать, демонстрируя следующее поведение:

всплывающее окно говорит: программой.ехе недопустимое приложение win32.

окно командной строки говорит " доступ отказано"

Я проверил разрешения, и пользователь имеет полный контроль и полное владение файл и его родительские каталоги. Так что проблема не в этом.

единственная возможная возможность, которую я могу изобразить, - это несовместимость ОС/архитектуры. Как это исправить?

мой setup.py файл, используемый для создания исполняемого файла:

from distutils.core import setup
import py2exe

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

Я запустил следующее, чтобы создать exe:

python setup.py py2exe

2 ответов


Я думаю, вам просто нужно установить 32-битный python и 32-бит py2exe на вашем компьютере.... см.может ли 64-разрядный python создавать 32-разрядные исполняемые файлы Windows


распространенная проблема при создании исполняемого файла в Windows 7 и развертывании в Windows XP.

Согласно учебнику py2exe, вам нужно включить DLL MVC. Но учебник старый и скрипт поиска только в одном каталоге. Раньше каталог содержал всю DLL и манифест, но в настоящее время он содержит только DLL. Для файла манифеста необходимо указать другой каталог. Если вы этого не сделаете, у вас будет такая ошибка:

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

Если вы находитесь в Windows 7 64 бит, вам нужна библиотека Microsoft Visual C runtime 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", содержащий все файлы и зависимости.