Windows実行可能ファイルにコンパイルしたいPythonスクリプトがあります。現在、py2exe
はWindowsで正常に動作しますが、Linuxから実行できるようにしたいと思います。私はdo開発マシンにWindowsがありますが、Linuxが私の主な開発プラットフォームであり、.exe
を作成するためにWindowsを再起動するのはうんざりしています。また、VirtualBoxなどの仮想マシンで実行するために2つ目のWindowsライセンスを購入する必要もありません。何か案は?
PS:py2exe
はpythonインタープリターでスクリプトをパッケージ化するほど正確にはPythonファイルをコンパイルしないことを知っています。しかし、どちらにしても、結果として、スクリプトを実行するのにPythonをインストールする必要はありません。
PyInstaller を見ましたか?
1.4までのバージョンはクロスコンパイルをサポートしているようです(1.5+ではサポートが削除されました)。 WineでPyInstaller 1.5+を使用して行う方法については、 この回答 を参照してください。
http://www.pyinstaller.org/browser/tags/1.4/doc/CHANGES.txt 言います:
クロスコンパイルのサポートを追加:PyInstallerは、Linuxで実行中にWindows実行可能ファイルをビルドできるようになりました。詳細については、ドキュメントを参照してください。
私は自分で試しませんでした。
私はそれが役立つことを願っています
他の回答者が述べたように、クロスコンパイル機能は1.5
以降の PyInstaller から削除されました。ここでは、Windows実行可能ファイルをPython PyInstaller under wine を使用してスクリプトからパッケージ化する方法を示します。
Sudo apt-get install wine
wine msiexec /i python-2.7.10.msi /L*v log.txt
PS:新しいPythonバージョンにはすでにpip
が含まれています(pyinstaller
のインストールに使用されます)。ダウンロードPythonインストールパッケージ- ここ (例:python-2.7.10.msi
)
$ cd ~/.wine/drive_c/Python27
$ wine python.exe Scripts/pip.exe install pyinstaller
Successfully installed pyinstaller-3.1.1 pypiwin32-219
パッケージ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
詳細な説明については here を参照してください。
Py2exeを実行するには、Windowsを VirtualBox で実行できます。 VBoxは、タスクを自動化するための強力なコマンドラインクライアントを提供するため、開発プロセスに簡単に統合できます。
Wine内でpy2exeをテストしましたが、機能します。動作させるにはwineにpythonをインストールする必要があります。または、標準ライブラリのみを使用する場合は、py2exeをWindowsマシンのpy2exeにバンドルしてwineで使用できます。 pythonをコンパイルするために使用されたのと同じバージョンのwineのmsビジュアルCライブラリが必要です。さもないと、物事が正しく動作しません。