Pythonがインストールされていない環境でもスクリプトを実行できると便利なことがある。PyInstallerを使ってこれを実現する方法を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Pythonで書かれたスクリプトを実行可能ファイルに変換すると、Pythonがインストールされていない環境でそのプログラムを簡単に実行できる。Pythonスクリプトを実行可能ファイル化する方法にはいろいろなものがあるが、ここではPyInstallerを紹介しよう。
PyInstallerの特徴を以下に挙げる。
なお、実行可能ファイルとしてパッケージ化する際にはPythonの処理系もまとめられるので、例えば、64ビット版のPythonで実行可能ファイル化したものは32ビット版のWindows上では動作しないなどの制約もある点には注意されたい(macOSでもデフォルトでは、Pythonがどのような環境で動作しているかに応じて、単一のアーキテクチャー向けのバイナリが作成される)。
以下では、PyInstallerによるPythonスクリプトの実行可能ファイル化の手順を見ていこう。
PyInstallerを使うには、それをインストールする必要がある。これにはpipコマンドを使えばよい。ここではvenvモジュールを使って仮想環境を構築し、そこにPyInstallerをインストールしている。
> pip install pyinstaller
これにより仮想環境でpyinstallerコマンドが使えるようになる(仮想環境ではなく、トップレベルでPyInstallerをインストールしたときにはPATHの設定が必要になるかもしれないが、本稿では取り上げない)。
またスクリプトで使用するパッケージとしてrequestsをインストールしたものとする(requestsパッケージは単にスクリプトが必要とするものをPyInstallerが追跡しパッケージにまとめてくれることを確認するためだけに使用する)。
> pip install requests
ここではPythonスクリプトを次のような構成とした。
コードについては詳しい説明は省略する。greet.pyファイルで定義された関数をmain.pyファイルで使用したり、requestsモジュールの__version__属性の値を表示したりするだけだ。
以上の構成のPythonスクリプトを実行可能ファイル化するには、メインとなるPythonスクリプトがあるディレクトリに移動して、pyinstallerコマンドを実行する。
> pyinstaller main.py
これにより、Pythonスクリプトの解析が行われた後に、パッケージとしてまとめられた内容がdistディレクトリ以下に作成される(distディレクトリの直下にPythonスクリプトから拡張子を除いたものでディレクトリが作成され、その下にパッケージの内容がまとめられる)。
上の例はWindows環境のものなので、main.exeファイルが作成されている。dist\mainディレクトリに作成されたmain.exeファイルを実行してみよう。
このように問題なくプログラムが実行された。
注意したいのは、デフォルトでは実行可能ファイルとして他の環境にPythonスクリプトを配布するときには、distディレクトリ以下にあるPythonスクリプトの名前が付いたディレクトリごと配布する必要がある点だ(上の例なら、mainディレクトリの内容をまるごと配布する)。
PyInstallerには多くのオプションが用意されている。例えば、先ほどの例では実行可能ファイルと関連ファイルが1つのディレクトリにまとめられるようになっていたが、単一の実行ファイルに全てをまとめることもできる。これには-F/--onefileオプションを指定する。これにより、distディレクトリ以下に実行可能ファイルとしてPythonスクリプトの内容が単一ファイルとして作成される。
このようなオプションを幾つか紹介する。
例えば、--name sampleオプション、--onefileオプション、-distpath MYDISTオプションを指定して、pyinstallerコマンドを実行すると次のように、MYDISTディレクトリに単一のファイルsample.exeが作成される。
Copyright© Digital Advantage Corp. All Rights Reserved.