この記事では、Python スクリプトを実行可能ファイルにパッケージ化する方法について説明します。 (詳細)、一定の参考値がありますので、困っている方は参考にしていただければ幸いです。
Python は、インタプリタによって解釈および実行されるスクリプト言語です。リリース方法:
.py ファイル: オープン ソース プロジェクトの場合、またはソース コードがそれほど重要ではない場合、ソース コードが直接提供され、ユーザーは Python やさまざまなソフトウェアをインストールする必要があります。依存ライブラリ自体。 (これは、Python 公式インストール パッケージが行うことです)
.pyc ファイル: 一部の企業または個人は、機密保持またはさまざまな理由により、ソース コードをオペレーターに見られたくない場合があります。 pyc ファイルを使用して公開できます。pyc ファイルは、Python インタープリタによって認識できるバイナリ コードであるため、公開後はクロスプラットフォームになります。ユーザーは、Python の対応するバージョンと依存ライブラリをインストールする必要があります。
実行可能ファイル: プログラマーではないユーザーや初心者ユーザーにとって、Python のインストールを要求され、さらに多数の依存ライブラリを処理しなければならないとしたら、それは大惨事になるでしょう。このようなユーザーにとって、最も簡単な方法は、実行可能ファイルを提供し、その使用方法を伝えることです。さらに厄介なのは、プラットフォーム (Windows、Linux、Mac など) ごとに異なる実行可能ファイルをパッケージ化する必要があることです。
この記事では主に最後の方法を紹介しますが、.py と .pyc はどちらも比較的単純で、Python 自体で処理できます。 Python スクリプトを実行可能ファイルにパッケージ化する方法は数多くありますが、この記事では PyInstaller に焦点を当てており、他の方法は比較と参考のみを目的としています。
コードの凍結
さまざまなパッケージ化ツールの比較は次のとおりです (コードの凍結に関する記事から):
解決策 |
Windows |
Linux |
OS X |
Python 3 |
ライセンス |
ワンファイルモード |
Zipfile インポート |
Eggs |
pkg_resources サポート |
##bbFreeze | yes | yes | はい | no | MIT | no | はい | はい | はい |
py2exe | はい | no | no | はい | MIT | はい | はい#no |
no |
|
pyInstaller
はい |
はい |
はい |
no |
GPL |
はい |
no |
はい |
いいえ |
|
cx_Freeze
yes |
yes |
yes |
yes |
PSF | no |
yes |
yes |
no |
|
py2app
no | いいえ |
はい | #はい#MIT |
いいえ | #はい#はい | # ## はい############PS. その中でも、pyInstaller と cx_Freeze はどちらも優れており、stackoverflow の何人かの人は、cx_Freeze の方が便利だと言って、cx_Freeze の使用を提案しています。 pkg_resources の新しいバージョンは pyInstaller でサポートされているようです。
PyInstaller のインストール
ネットワークが比較的安定しており、pip ソース アドレスをスムーズに使用できるユーザーの場合は、次のコマンドを実行するだけです:
pip install pyinstaller
ログイン後にコピー
通常は、ソース コード パッケージをダウンロードし、パッケージ ディレクトリに移動して次のコマンドを実行します (setuptools をインストールする必要があります):
python setup.py install
ログイン後にコピー
インストール後、インストールが成功したかどうかを確認してください:
pyinstaller --version
ログイン後にコピー
インストールが成功したら、次のコマンドを使用できます:
pyinstaller
: 実行ファイルをパッケージ化するためのメインコマンドで、詳しい使い方は後述します。
pyi-archive_viewer
: 実行可能パッケージ内のファイルリストを表示します。
pyi-bindepend
: 実行可能ファイルが依存する動的ライブラリ (.so または .dll ファイル) を表示します
pyi-...
: 待ってください。
PyInstaller
pyinstaller
の構文を使用します:
pyinstaller [options] script [script ...] | specfile
ログイン後にコピー
最も単純な使用法では、myscript.py と同じディレクトリでコマンドを実行します。
pyinstaller mycript.py
ログイン後にコピー
すると、2 つの新しいディレクトリ build と dist が作成されたことがわかります。 dist の下に追加 ファイルは公開できる実行可能ファイルです。上記のコマンドの場合、dist ディレクトリの下にダイナミック ライブラリ ファイルや myscrip 実行可能ファイルを含む多数のファイルが見つかります。これは面倒に感じることがあります。公開する前に、すべてを dist の下にパッケージ化する必要があります。動的ライブラリが失われると、実行されなくなります。幸いなことに、pyInstaller はシングル ファイル モードをサポートしています。実行する必要があるのは、次のとおりです:
pyinstaller -F mycript.py
ログイン後にコピー
dist の下には実行可能ファイルが 1 つだけあることがわかります。この 1 つのファイルは公開でき、使用しているオペレーティング システムと同様のシステムで実行できます。
もちろん、pyinstaller
には、pyInstaller の実行プロセスをデバッグおよび理解するための -d オプションなどの一般的なオプションを含むさまざまなオプションもあります。また、さまざまなプラットフォーム用のオプションもいくつかあります。具体的な使用方法については、PyInstaller 公式 WIKI にアクセスしてください。
pyInstaller
コマンドを実行すると、スクリプトと同じディレクトリに .spec
ファイルが生成されます。このファイルは、pyinstaller にすべてのスクリプトの処理方法を指示します。 . には、コマンド オプションも含まれます。通常、このファイルに注意を払う必要はありません。データ ファイルをパッケージ化する必要がある場合、またはパッケージ化されたバイナリに Python ランタイム オプションを追加する必要がある場合 (高度なパッケージ化オプションなど)、.spec を手動で編集する必要があります。 ### ファイル。 .spec ファイルを作成するには:
pyi-makespec options script [script ...]
ログイン後にコピー
を使用できます。手動で編集した .spec ファイルの場合は、次のコマンドのいずれかを使用できます: pyinstaller specfile
pyi-build specfile
ログイン後にコピー
PyInstaller の原理の紹介PyInstaller は、実際に Python パーサーと独自のスクリプトを実行可能ファイルにパッケージ化し、実際のマシン コードにコンパイルします。実行可能ファイルにパッケージ化することで作業効率が向上するとは期待しないでください。逆に、作業効率が低下する可能性があります。利点は、Python やスクリプトが依存するライブラリをインストールする必要がないことです。ランナーズマシン。 Linux オペレーティング システムでは、主に binutil ツール パッケージの
ldd および
objdump コマンドを使用します。
PyInstaller は指定したスクリプトを入力し、まずそのスクリプトが依存する他のスクリプトを分析し、次に Python パーサーを含むすべての関連スクリプトを検索、コピー、収集し、これらのファイルをディレクトリに配置します。ダウンロードするか、またはそれを実行可能ファイルにパッケージ化します。 出力フォルダー全体のファイル、または生成された実行可能ファイルを直接公開できます。アプリケーションが自己完結型であり、直接実行する前に他のパッケージや特定のバージョンの Python をインストールする必要がないことをユーザーに伝えるだけで済みます。 PyInstaller でパッケージ化された実行可能ファイルは、パッケージング マシン システムと同じ環境でのみ使用できることに注意してください。つまり、移植性がないため、別のシステムで実行する必要がある場合は、そのプラットフォーム用にパッケージ化する必要があります。
以上がPython スクリプトを実行可能ファイルにパッケージ化するにはどうすればよいですか? (詳細)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。