py2exeからPyInstallerに乗り換えるとすこぶる簡単だったというはなし。
PyQtで作ったGUIアプリを職場のみんなに使ってもらうにはexeファイルを作成しなければならない状況にあって、以前はpy2exeでmatplotlibやPyQt4のアプリをexeファイル化していたが、py2exeを実行すると
しかも何が足りないって、IronPythonとか使った記憶がないモジュールばかりなので、ちょっとわけがわからなくなった。
StackOverflowなんかを見てみるとpy2exeは止めてPyInstallerを使えって回答が多かった。
なんとなくPyInstallerはインストーラーを作るイメージがあって使ってなかったけど、exeファイルもつくれるようだ。食わず嫌いでした。
ほんで、実際にPyInstallerを使ってみたらすこぶる簡単だった。今までの時間は何だったのか。
インストールの仕方など調べてみると少し古いのもあって混乱したので、ここに簡単な使い方を紹介しておく。
PyQtで作ったGUIアプリを職場のみんなに使ってもらうにはexeファイルを作成しなければならない状況にあって、以前はpy2exeでmatplotlibやPyQt4のアプリをexeファイル化していたが、py2exeを実行すると
と言うエラーメッセージが 出てうまくいかない。どうもオプションでbundle=1と設定するとうまくいかないようだ。(bundle=1はDLLなどを1つexeに詰め込む設定。bundle=3だとうまく動いた。)
しかも何が足りないって、IronPythonとか使った記憶がないモジュールばかりなので、ちょっとわけがわからなくなった。
StackOverflowなんかを見てみるとpy2exeは止めてPyInstallerを使えって回答が多かった。
なんとなくPyInstallerはインストーラーを作るイメージがあって使ってなかったけど、exeファイルもつくれるようだ。食わず嫌いでした。
ほんで、実際にPyInstallerを使ってみたらすこぶる簡単だった。今までの時間は何だったのか。
インストールの仕方など調べてみると少し古いのもあって混乱したので、ここに簡単な使い方を紹介しておく。
1. インストール
PyInstallerのドキュメントにインストール方法が書いてある。Installing Using pipに従うと、
とするだけ。
その下にPyWin32が必要とか書いてあるけど、今回は特に何もしなかった。多分Python(x,y)をインストールしたときに色々一緒にいれたので、そのときに入っていたのかもしれない。
とするだけ。自動で必要なファイルやらなんやらを取得してくれるらしい。
buildとdistというフォルダが生成されてdistの中にあるexeファイルを実行ればpythonで作成したアプリが動作する。
今回はexeにすべて詰め込みたかった+実行時コマンドプロンプトを表示させたくなかったので
今回はPyQt4を使ったものをexe化したけど、matplotlibやOpenGLでもこんなに簡単やったらいいなぁ。
その下にPyWin32が必要とか書いてあるけど、今回は特に何もしなかった。多分Python(x,y)をインストールしたときに色々一緒にいれたので、そのときに入っていたのかもしれない。
2. exeファイル化
Pythonのスクリプトファイルがある場所に移動して、とするだけ。自動で必要なファイルやらなんやらを取得してくれるらしい。
buildとdistというフォルダが生成されてdistの中にあるexeファイルを実行ればpythonで作成したアプリが動作する。
今回はexeにすべて詰め込みたかった+実行時コマンドプロンプトを表示させたくなかったので
というオプションを加えた。オプションについてはここを参照。
今回はPyQt4を使ったものをexe化したけど、matplotlibやOpenGLでもこんなに簡単やったらいいなぁ。