web-dev-qa-db-ja.com

UbuntuでPyInstallerを使用してWindows実行可能ファイルを作成するにはどうすればよいですか?

Pygameを使用してゲームを作成し、.exeファイルにエクスポートしたい。 Ubuntuで利用できるので、pyinstallerを使用しました。 --onefile gameを実行すると、(私のubuntuコンピューターで)正常に動作します。ただし、Windowsを持っている友人に送信する場合、それはWindows実行可能ファイルではなく、単に拡張子のない「ファイル」です。彼はそれを実行できません。名前の変更Game.exeも機能していません。

私はアイデアがありません...誰でも助けることができますか?

2
ayanokouji

明らかに、LinuxでPyInstallerによって生成されたバイナリ実行可能ファイルはLinuxでのみ実行され、Windowsなどの他のオペレーティングシステムでは実行されません。ここでは、ファイル名の拡張子は関係ありません。

PyInstall FAQ によると、異なるプラットフォーム用のクロスコンパイルにも使用できませんが、Wine内でPyInstallを実行すると、目的を達成できるはずです。

  1. PyInstallerをクロスコンパイラとして使用できますか?

    1. Linuxで実行中にWindowsバイナリをパッケージ化できますか?

      いいえ、これはサポートされていません。 Wine を使用してください。PyInstallerはWineで正常に動作します。 メーリングリストのこのスレッド もご覧ください。バージョン1.4では、これに対するサポートが組み込まれていましたが、半分しか機能しないことがわかりました。別のパーティションにWindowsシステムが必要であり、純粋なPythonプログラムでのみ機能します。適切なGUI(gtk、qt、wx)が必要になったらすぐに、Windowsライブラリをインストールする必要があります。そのため、Wineを使用する方がmuchより簡単です。

私の理解では、PyInstallをWine環境にインストールする必要があります Windowsの場合と同じように し、それをネイティブのWindowsシステムの場合と同じように使用します。 UbuntuでWineを開始する方法の概要については、 Windowsソフトウェアまたはゲームのインストール方法 を参照してください。

5
David Foerster

試すことができますPython Packager

git homepage は指示を与えます(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
1
abu_bua