Pythonスクリプトを実行形式のファイルにまとめる(2)

前回、Pythonスクリプトを実行形式のファイルにまとめるPyInstallerの使い方を検討した。
そのとき、Pythonスクリプトが他のディレクトリにあるモジュールをimportしているような場合には、specファイルのpathexのモジュールパスを追加すればいい、ということになったが、他の方法があった*1。それは、Makespec.pyでspecファイルを作成するときに、オプションで設定するということ。Makespec.pyのオプションの一部としては、以下のようなものがある。

オプション 意味
--onefile 作成されるのファイルが一つの実行ファイルになる。このオプションがないと、複数のライブラリと実行ファイルに分けられる。
--windowed, --noconsole 実行ファイルを起動したときにコンソールが開かない。Windows用のオプション。
--nowindowed, --console 上の逆。コンソールが開かれる。
-p DIR, --paths=DIR pythonモジュールをimportするためのパスの設定(PYTHONPATH)のようなもの。複数のディレクトリを設定できる。ディレクトリ間は、';'(Windowsの場合)か':'(Linuxの場合)で区切る。
--icon= アイコンを表示させる。
-n NAME, --name=NAME 作成される実行ファイルの名前を指定する。Makespec.pyを実行したとき、NAME.specというファイルが作成され、Build.pyを実行したとき、NAMEという実行ファイルが作成される。

このうち、--pathsオプションを使えばよい。
Linuxの場合であれば、--paths="./modules:./libs"のように書く。これで動く。
Windowsの場合であれば、--paths="./modules;./libs"のように書けばよい。

  • テスト環境
    • Python 2.6.2
    • PyInstaller 1.5

*1:参考:PyInstaller Documentation for version 1.4 [pdf]