исполняемый файл, сделанный с py2exe не работает на Windows XP 32bit - PullRequest
6 голосов
/ 17 июня 2011

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

На 32-битной машине с Windows XP программа не запускается, демонстрируя следующее поведение:

всплывающее окно говорит: program.exe не является приложением win32.

В окне командной строки написано «доступ запрещен»

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

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

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

from distutils.core import setup
import py2exe

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

Я запустил следующее, чтобы сгенерировать исполняемый файл:

python setup.py py2exe

Ответы [ 2 ]

7 голосов
/ 17 июня 2011

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

4 голосов
/ 11 ноября 2011

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

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

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

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

...