これを行うには、多くの、多くの、多くの、多くの、多くの、多くの、多くの多くの方法があります。私はそれぞれの背後にある原則について滑って、それはユースケースです。
1. Python環境
これを行うには多くの方法があります。pipenv
、conda、requirments.txt
など
これらのいくつかでは、Pythonのバージョンを指定できます。それ以外の場合は、動作することがわかっているPythonバージョンの範囲を指定するだけです。たとえば、Python 3.7を使用している場合、3.6をサポートしない可能性は低いです。わずかな変更が1つまたは2つあります。3.8も動作するはずです。
別の同様の方法はsetup.py
です。これらは一般に、インポート/コマンドラインで使用するPyInstaller(後述する別のソリューション)、numpy、wxPython、PyQt5などのライブラリの配布に使用されます。Pythonパッケージガイドは非常に便利で、そこにはたくさんのチュートリアルがあります。(google python setup.py tutorial
)これらのファイルで要件を指定することもできます。
2.コンテナ
Dockerは大きなものです。聞いたことがない人はびっくりします。要約の迅速なGoogleが思い付くこの私がの一部を引用しますました、:
では、なぜ誰もがコンテナとDockerを愛するのでしょうか。以前はParallelsのサーバー仮想化のCTOであり、主要なLinuxカーネル開発者であるJames Bottomleyは、Hyper-V、KVM、XenなどのVMハイパーバイザーはすべて「仮想ハードウェアのエミュレーションに基づいている」と説明しました。システム要求。"
ただし、コンテナは共有オペレーティングシステムを使用します。つまり、システムリソースの点で、ハイパーバイザーよりもはるかに効率的です。ハードウェアを仮想化する代わりに、コンテナーは単一のLinuxインスタンスの上に置かれます。これは、「無駄な99.9%のVMジャンクを残して、アプリケーションを含む小さくてすっきりとしたカプセルを残せる」ことを意味します。
それはあなたのためにそれを要約するはずです。(コンテナに特定のOSは必要ないことに注意してください。)
3.実行可能ファイル
これを書いている時点でこれを行う2つの主要なツールがあります。PyInstaller、およびcx_Freeze。どちらも積極的に開発されています。どちらもオープンソースです。
スクリプトを取得し、ツールがそれをバイトコードにコンパイルし、インポートを見つけてコピーし、エンドユーザーがPythonを必要とせずにターゲットシステムでスクリプトを実行するポータブルPython環境を作成します。
個人的には、PyInstallerを好みます-私は開発者の1人です。PyInstallerは、コマンドラインスクリプトを通じてすべての機能を提供し、考えられるほとんどのライブラリをサポートしています。cx_Freezeにはセットアップスクリプトが必要です。
どちらのツールもWindows、Linux、macOSなどをサポートしています。PyInstallerは単一ファイルのexeまたは1つのフォルダーバンドルを作成できますが、cx_Freezeは1つのフォルダーバンドルしかサポートしません。PyInstaller 3.6はpython 2.7と3.5-3.7をサポートしますが、4.0 は python 2をサポートしません。cx_Freezeは、前回のメジャーリリース(6.0だと思います)でpython 2のサポートを終了しました。
とにかく、ツールの機能については十分です。あなたはそれらを自分で調べることができます。(詳細については、https://pyinstaller.orgおよびhttps://cx-freeze.readthedocs.ioを参照してください)
この配布方法を使用する場合、通常はGitHubリポジトリでソースコードを提供し、いくつかのexeファイル(プラットフォームごとに1つ)をダウンロードして準備し、コードを実行可能ファイルにビルドする方法を説明します。