Как создать исполняемый файл Windows с PyInstaller в Ubuntu?

Я создал игру с использованием pygame и хочу экспортировать ее в файл .exe. Я использовал pyinstaller для этого, так как он доступен для Ubuntu. Когда я запускаю --onefile game, он отлично работает (на моем компьютере с Ubuntu). Однако, когда я отправляю его своему другу, у которого есть Windows, это НЕ исполняемый файл Windows, а просто «файл» без какого-либо расширения. Он не может запустить это. Переименование Game.exe тоже не сработало.

У меня нет идей ... кто-нибудь может помочь?

2
задан 28 February 2016 в 12:17

2 ответа

Очевидно, двоичный исполняемый файл, сгенерированный PyInstaller на Linux только, работает на Linux а не в других операционных системах как Windows. Расширение файла не важно здесь.

Согласно PyInstall FAQ Вы не можете использовать его, чтобы кросс-скомпилировать для различных платформ также, но рабочий PyInstall в Вине, как предполагается, достигает того, что Вы хотите:

  1. я могу использовать PyInstaller в качестве кросс-компилятора?

    1. действительно ли я могу упаковать двоичные файлы Windows при выполнении в соответствии с Linux?

      нет, это не поддерживается. Используйте Вино для этого, PyInstaller хорошо работает в Вине. Можно также хотеть взглянуть на этот поток в mailinglist. В версии 1.4 у нас была сборка в некоторой поддержке этого, но она показала для работы только половины. Это потребовало бы некоторой системы Windows на другом разделе и будет только работать на чистые программы Python. Как только Вы хотите достойный GUI (gtk, QT, wx), необходимо было бы установить библиотеки Windows во всяком случае. Таким образом, очень легче просто использовать Вино.

Из того, что я понимаю, необходимо будет установить PyInstall в Винной среде как Вы, был бы в Windows , и затем используйте его как Вы, был бы в собственной системе Windows. См. , Как я могу установить программное обеспечение Windows или игры? для обзора того, как начать с Вином на Ubuntu.

0
ответ дан 28 February 2016 в 22:17
  • 1
    Основная часть systemctl status spark.service следующие: Executable path is not absolute и spark.service: Service lacks both ExecStart= and ExecStop= setting. Refusing. – macourtney7 26 May 2017 в 23:27

Можно попробовать Поставщик программного блока Python

, домашняя страница мерзавца дает инструкцию (python 2.7):

wget "http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi" 
wget "http://nchc.dl.sourceforge.net/project/pywin32/pywin32/Build%20218/pywin32-218.win32-py2.7.exe"
build_environment/create.sh
export WINEPREFIX=/tmp/path-outputted-from-create
wine start python-2.7.3.msi
wine pywin32-218.win32-py2.7.exe
build_environment/freeze.sh
./package sample-application/src/main.py MySampleProgram

Это создаст отдельную винную среду и устанавливает Python 2.7, как упомянуто. В случае, если Вы нуждаетесь в другой версии, полученной к домашняя страница Python , и загрузите свою версию.

можно также следовать эта инструкция , который загружает винный клон:

git clone https://github.com/paulfurley/python-windows-packager
./python-windows-packager/package.sh /path/to/myProject
0
ответ дан 17 April 2019 в 07:48

Другие вопросы по тегам:

Похожие вопросы: