Pyhtonのスクリプトをコマンド1つで実行ファイル(.exe)化する
はじめに
こういうこと、ありませんか?
僕は、他言語を勉強するのが億劫でついついなんでもPythonで作ってしまいます。
わりとなんでも作れてしまうのがPythonのいいところではあるのですが、さすがにスクリプト言語だし実行ファイル化するのは無理だよな~。
そう思っていた時期もありました。
「起動が遅い」「ファイルサイズが大きくなる」といったデメリットはあるものの、Pythonのスクリプトを実行ファイル化することはできます。
しかもコマンド1つで!
今回使うのはPyinstallerです。
PyInstallerはPythonプログラムをWindows、Linux、Mac OS X、FreeBSD、Solaris、AIXのスタンドアロンの実行可能ファイルにフリーズ(パッケージ化)するプログラムです。
公式サイトより引用
ステップ1 Pyinstallerをインストール
今回はAnaconda3の仮想環境上でPyinstallerを使います。
Anacondaを導入していない方は、以下の記事で最も簡単な環境構築方法を解説しているので、参考にしてください。
仮想環境をactivate
にした後、以下のコマンドでAnaconda上のPyinstallerパッケージを探してください。自分のOSに適合したパッケージが見つかるはずです。
anaconda search -t conda pyinstaller
良さげなパッケージを見つけたら、以下のコマンドでパッケージのインストール方法を閲覧してください。僕は「conda-forge/pyinstaller」という名前のパッケージを選択しました。
anaconda show conda-forge/pyinstaller
一番下のほうにインストールのコマンドが表示されているので、それを実行することでPyinstallerと共に、依存関係のあるライブラリも同時にインストールされます。
conda install --channel https://conda.anaconda.org/conda-forge pyinstaller
ステップ2 Pyinstallerを使ってスクリプトを実行ファイル化
スクリプトを実行ファイル化するのはコマンド1つで出来てしまいます。
pyinstaller yourprogram.py
コンソールを起動してほしくない場合や、ファイルを一つにまとめたい場合、古い実行ファイルを削除したい場合は以下のようにオプションを付けましょう。
pyinstaller yourprogram.py --noconsole --onefile --clean
肝心の実行ファイルは、カレントディレクトリ配下のdistディレクトリの中に生成されていますので、煮るなり焼くなり好きにすると良いでしょう。
おまけ トラブルシューティング
導入時に実際に起こった問題と、その対策をメモします。
トラブル1 実行ファイル起動時にエラーが出る
実行ファイルを起動するとこんなエラーが…
なんかQtのプラグインが見つからなかったとかなんとか言ってます…
ggったら解決方法が見つかりました。
https://plus.google.com/+rikitoy/posts/1bVKdQy33dz
どうやら、以下のディレクトリの配下のplatforms
ディレクトリを、実行ファイルのあるディレクトリにコピーすればエラーが解消されるようです。
[Anaconda3インストールディレクトリ]\envs\[仮想環境名]\Library\plugins\