Pythonで書かれたアプリケーションを配置(deploy)する#

ページステイタス:

未完了

最終査読日:

2021-8-24

概要#

複数のハードウェアプラットフォームをサポートする#

FIXME

Meaning: x86, x64, ARM, others?

For Python-only distributions, it *should* be straightforward to deploy on all
platforms where Python can run.

For distributions with binary extensions, deployment is major headache.  Not only
must the extensions be built on all the combinations of operating system and
hardware platform, but they must also be tested, preferably on continuous
integration platforms.  The issues are similar to the "multiple Python
versions" section above, not sure whether this should be a separate section.
Even on Windows x64, both the 32 bit and 64 bit versions of Python enjoy
significant usage.

OSパッケージングとインストーラ#

FIXME

- Building rpm/debs for projects
- Building rpms/debs for whole virtualenvs
- Building macOS installers for Python projects
- Building Android APKs with Kivy+P4A or P4A & Buildozer

Windows#

FIXME

- Building Windows installers for Python projects

Pynsist#

`Pynsist <https://pypi.org/project/pynsist>`__は、Pythonで書かれたプログラム群をNSISベースのPythonインタープリタ付きの単体インストーラにまとめるツールです。ほとんどの場合、パッケージング作業ではユーザがPythonインタープリタのバージョンを選択することとプログラムの依存関係を宣言することしか求められません。このツールは、指定されたWindows版のPythonインタープリタをダウンロードして、依存関係にあるすべてをWindows上で実行可能な単体インストーラにまとめます。

インストーラがスタートメニューに追加したショートカットから、インストールされたプログラムを起動することができます。プログラムは、そのアプリケーション用のディレクトリの中にインストールされたPythonインタープリタで同じコンピュータ内にある他のPythonからは独立したをものを使います。

Pynsistを使う大きな利点は、Windows用のパッケージをLinux上で作成することができるということです。 :any: 説明文書 には異なる種類のプログラム(コンソール用やGUIを使うものなど)の例がいくつかあります。このツールはMITライセンスのもとに公開されています。

アプリケーションバンドル#

FIXME

- wheels kinda/sorta

Windows#

py2exe#

py2exe はdistutilsの拡張パッケージで、Pythonのスクリプトから単独で動作するWindowsの実行プログラム(32ビット版または64ビット版)を作成することができます。公式の開発サイクルに含まれるバージョンのPythonがすべてサポートされています(`Pythonのブランチの状況 <Status of Python branches>`__を参照して下さい)。py2exeはコンソールで動作する実行可能ファイルも、Windowsの(GUIの)実行ファイルも作成することができます。WindowsサービスやDLL/EXE COMサーバを作成することもできるかもしれませんが、これらは活発にサポートされているとは言えません。distutilsの拡張パッケージは、MITライセンスとMozilla Publicライセンス2.0の下で公開されています。

macOS#

py2app#

py2app はPythonのsetuptoolsのコマンドで、単独で動作するmacOSアプリケーションバンドルやプラグインをPythonスクリプトから作成することができます。アプリケーションを作成する時はmacOS上でpy2appを使わなければならず、他のプラットフォーム上ではMacアプリを作成することができない点に留意して下さい。py2appはMITライセンスの下で公開されています。

Unix (LinuxとmacOSを含む)#

pex#

pex は、.pex (Python EXecutable)ファイル、つまり、virtualenvを利用した実行可能なPython環境を含んだファイルを生成するライブラリです。pexは PEP 441 で概要が示されたアイデアに基づく拡張で、単純にファイルをコピーするだけでPythonアプリケーションを配置(デプロイ)することができるようにします。複数のプラットフォーム依存なPython配布物でもpexファイルに内包することができますので、単一のpexファイルがLinuxでもmacOSでも動作可能ということになります。pexはApacheライセンス2.0の下で公開されています。

設定管理#

FIXME

puppet
salt
chef
ansible
fabric