はじめての PyInstaller
以前 はじめての py2exe というエントリで、 python で書いたプログラムを Windows アプリケーションにしたという話をしました。
で、今回も似たようなことをやったんですが、今回は Windows アプリケーションを作るために PyInstaller というツールを使用しました。
本当は前回と同じく py2exe でやりたかったんですが、諸般の事情により別なツールを使うことを余儀なくされたためです。 まぁ、選択肢が増えたのでよかったということにしましょう。
作るアプリケーションの要件は以下のとおり
- あるテキストファイルを別な形式のファイルに変換する
- ファイルは exe にドラッグ・アンド・ドロップで指定する
- 変換した結果をダイアログに表示する
- 実行ファイルは単一のファイル(exe)にして、他のライブラリとかが無くても動くようにする
この4番目の要件が曲者で、悪戦苦闘しました。
1回目: py2exe + Tkinter
最初はダイアログを Tkinter の tkMessageBox で表示するようにして、 py2exe でアプリケーションを作成しました。 起動しようとするとなぜかエラーが出て立ち上がりません。
調べてみると、なぜか bundle_files を3以外にしてファイルをまとめると動かないようです。しくしく。
参考: Tkinterを利用したモジュールをpy2exeでexe化するときはbundle_filesは3じゃないとダメ - Bouldering & Com.
2回目: py2exe + wxPython
次に、GUI を tkMessageBox から wxPython の MessageDialog に変更してみました。
今度は bundle_files を 1にしてファイルをまとめてもちゃんと起動します。
で、できあがった実行ファイルを他の人のPCにコピーして実行してみました。するとNB 「 MSVCR71.dll がありません」といわれて立ち上がりませんでした。しくしく。
3回目: PyInstaller + Tkinter
ここで py2exe をあきらめて PyInstaller に切り替えてみました。ちなみに GUI は Tkinter に戻してます。
PyInstall のインストールは普通の setup.py とかではないので、ちょっと違和感がありますが、こんな手順です。
> unzip pyinstaller_1.3.zip > cd pyinstaller > Configure.py
ここまででセットアップは終了。あとはインストールしたディレクトリにパスを通して実行します。 Makespec.py で実行ファイルを作るための定義ファイル(specファイル)を作成し、 Build.py で作成するという手順です。
> Makespec.py --onefile --tk --windowed --icon=icon.ico hoge.py > Build.py hoge.spec
指定したオプションは以下のとおり。
- --onefile 1つのファイルにまとめる
- --tk Tcl/Tkを含める
- --windowed Windowsアプリケーションにする(コンソールじゃない)
- --icon=icon.ico アプリケーションのアイコンを指定する
これでやっと、望みどおりのアプリケーションができました。めでたしめでたし。
- カテゴリ
-
python
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1072/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については