Windows実行ファイルにコンパイルしたいPythonスクリプトがあります。Windowspy2exe
では問題なく動作しますが、Linuxでも実行できるようにしたいです。する開発マシンには Windows が搭載されていますが、Linux が主な開発プラットフォームなので、 を作成するために Windows を再起動するのはうんざりしています.exe
。また、VirtualBox などの仮想マシンで実行するために 2 つ目の Windows ライセンスを購入する必要もありません。何かアイデアはありますか?
PS: Python インタープリターを使用してスクリプトをパッケージ化するのとまったく同じで、Python ファイルを正確にコンパイルするわけではないことは承知していますpy2exe
。しかし、いずれにしても、スクリプトを実行するために Python をインストールする必要はなくなります。
ベストアンサー1
他の回答者が述べたように、クロスコンパイル機能は削除されましたPyインストーラ以降1.5
。ここでは、PythonスクリプトからWindows実行ファイルをパッケージ化する方法を示します。Pyインストーラ下ワイン。
ステップ1: WineとPythonをインストールする
sudo apt-get install wine
wine msiexec /i python-2.7.10.msi /L*v log.txt
追伸:
新しいバージョンのPythonには既に
pip
(のインストールに使用されますpyinstaller
)が含まれています。Pythonインストールパッケージをここからダウンロードしてください。ここ(例python-2.7.10.msi
)Macos ユーザーの場合は を使用します
brew cask install xquartz wine-stable
。
ステップ2: WineにPyInstallerをインストールする
$ cd ~/.wine/drive_c/Python27
$ wine python.exe Scripts/pip.exe install pyinstaller
Successfully installed pyinstaller-3.1.1 pypiwin32-219
ステップ3: Pythonスクリプトをパッケージ化する
Python スクリプト (例: HelloWorld.py
) を でパッケージ化しますpyinstaller
。
$ wine ~/.wine/drive_c/Python27/Scripts/pyinstaller.exe --onefile HelloWorld.py
# filename: HelloWorld.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print('Hello World!')
Windows 実行可能ファイルは にありますdist/
。
$ wine dist/HelloWorld.exe
Hello World!
fixme:msvcrt:__clean_type_info_names_internal (0x1e24e5b8) stub
参照するここ詳細な説明については。