Pygameを使用してゲームを作成し、.exe
ファイルにエクスポートしたい。 Ubuntuで利用できるので、pyinstallerを使用しました。 --onefile game
を実行すると、(私のubuntuコンピューターで)正常に動作します。ただし、Windowsを持っている友人に送信する場合、それはWindows実行可能ファイルではなく、単に拡張子のない「ファイル」です。彼はそれを実行できません。名前の変更Game.exe
も機能していません。
私はアイデアがありません...誰でも助けることができますか?
明らかに、LinuxでPyInstallerによって生成されたバイナリ実行可能ファイルはLinuxでのみ実行され、Windowsなどの他のオペレーティングシステムでは実行されません。ここでは、ファイル名の拡張子は関係ありません。
PyInstall FAQ によると、異なるプラットフォーム用のクロスコンパイルにも使用できませんが、Wine内でPyInstallを実行すると、目的を達成できるはずです。
PyInstallerをクロスコンパイラとして使用できますか?
Linuxで実行中にWindowsバイナリをパッケージ化できますか?
いいえ、これはサポートされていません。 Wine を使用してください。PyInstallerはWineで正常に動作します。 メーリングリストのこのスレッド もご覧ください。バージョン1.4では、これに対するサポートが組み込まれていましたが、半分しか機能しないことがわかりました。別のパーティションにWindowsシステムが必要であり、純粋なPythonプログラムでのみ機能します。適切なGUI(gtk、qt、wx)が必要になったらすぐに、Windowsライブラリをインストールする必要があります。そのため、Wineを使用する方がmuchより簡単です。
私の理解では、PyInstallをWine環境にインストールする必要があります Windowsの場合と同じように し、それをネイティブのWindowsシステムの場合と同じように使用します。 UbuntuでWineを開始する方法の概要については、 Windowsソフトウェアまたはゲームのインストール方法 を参照してください。
試すことができます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