コードのフリーズ¶
コードを “フリーズ” すると、アプリケーションコードとPythonインタプリタのすべてを含む、エンドユーザーに配布するための単一ファイルの実行可能ファイルが作成されます。
「Dropbox」、「Eve Online」、「Civilization IV」、BitTorrentクライアントなどのアプリケーションがこれを行います。
この方法を配布することの利点は、必要なバージョンのPython(またはいずれか)がインストールされていなくても、アプリケーションが「うまくいく」ことです。 Windowsでは、そして多くのLinuxディストリビューションやOS Xでも、適切なバージョンのPythonはまだインストールされていません。
さらに、エンドユーザソフトウェアは常に実行形式でなければなりません。 .py
で終わるファイルは、ソフトウェアエンジニアやシステム管理者のためのものです。
フリーズの欠点の1つは、配布量を約2〜12MB増やすことです。 また、Pythonのセキュリティ上の脆弱性が修正されたときに、アプリケーションの更新版を出荷する責任があります。
フリーズの代替¶
あなたのコードをパッケージ化する は、ライブラリやツールを他の開発者に配布するためのものです。
Linuxの場合、フリーズする代わりに、 Linuxディストリビューションパッケージを作成するためのパッケージング (DebianやUbuntuでは.debファイル、Red HatやSuSEでは.rpmファイル) )
課題
“コードをフリーズする” スタブを記入
フリーズツールの比較¶
ソリューションとプラットフォーム/サポートされる機能:
Solution | Windows | Linux | OS X | Python 3 | License | One-file mode | Zipfile import | Eggs | pkg_resources support |
---|---|---|---|---|---|---|---|---|---|
bbFreeze | yes | yes | yes | no | MIT | no | yes | yes | yes |
py2exe | yes | no | no | yes | MIT | yes | yes | no | no |
pyInstaller | yes | yes | yes | yes | GPL | yes | no | yes | no |
cx_Freeze | yes | yes | yes | yes | PSF | no | yes | yes | no |
py2app | no | no | yes | yes | MIT | no | yes | yes | yes |
注釈
Linux上のPythonコードをWindows実行可能ファイルにフリーズすることはPyInstaller で一度しかサポートされず、後で廃止されました 。
注釈
すべてのソリューションは、py2appを除くターゲットマシンにMS Visual C++ dllをインストールする必要があります。 Pyinstallerだけが --onefile
を渡すときにdllをバンドルする自己実行可能なexeを作成します Configure.py
。
Windows¶
py2exe¶
前提条件は Python on Windows をインストールすることです。
- http://sourceforge.net/projects/py2exe/files/py2exe/ をダウンロードしてインストールします。
- 書き込み
setup.py
(設定オプションのリスト):
from distutils.core import setup
import py2exe
setup(
windows=[{'script': 'foobar.py'}],
)
- (オプション) インクルードアイコン
- (オプション) 1ファイルモード
- 生成する
.exe
intodist
ディレクトリ:
$ python setup.py py2exe
- Microsoft Visual CランタイムDLLを提供します。 2つのオプションがあります: ターゲットマシンにDLLをグローバルにインストールする または dllを .exe と一緒に配布する 。
OS X¶
py2app¶
PyInstaller¶
PyInstallerを使用して、Mac OS X 10.6(Snow Leopard)以降のUnix実行ファイルやウィンドウアプリケーションをビルドすることができます。
PyInstallerをインストールするには、pipを使用します:
$ pip install pyinstaller
標準のUnix実行ファイルを作成するには、次のようにします script.py
:
$ pyinstaller script.py
これは、
script.spec
ファイルmake
ファイルに似ていますbuild
フォルダ。いくつかのログファイルを保持します。dist
フォルダです。メインの実行ファイルscript
といくつかの依存するPythonライブラリを保持しています。
script.py
としてすべて同じフォルダ内にあります。 PyInstallerは script.py
で使われているすべてのPythonライブラリを dist
フォルダに置きます。したがって、実行ファイルを配布するときには dist
フォルダ全体を配布してください。
script.spec
ファイルは ビルドをカスタマイズ するために編集することができます。
- データファイルを実行可能ファイルにバンドルする
- PyInstallerが自動的に推論できない実行時ライブラリ (
.dll
または.so
ファイル) を含みます - Python実行時オプションを実行可能ファイルに追加する
今すぐ script.spec
は pyinstaller
で実行することができます (script.py
を再度使用するのではなく):
$ pyinstaller script.spec
スタンドアロンのウィンドウズOS Xアプリケーションを作成するには、--windowed
オプションを使います
$ pyinstaller --windowed script.spec
これは dist
フォルダに script.app
を作成します。 PyQt や PySide のようなPythonコードでGUIパッケージを使うようにしてください。アプリのグラフィック部分を制御する。
いくつかのオプションがあります script.spec
はMac OS Xアプリケーションバンドルに関連しています ここ 。 たとえば、アプリケーションのアイコンを指定するには、 icon=\ path\to\icon.icns
オプションを使用します。