исполняемый сделал с 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", содержащий все файлы и зависимости.