5.09.2013

py2exeで、exeにアイコンをつける

py2exeは、pythonで書いたスクリプトをexeにコンパイルするスクリプトです。
世のNWエンジニアのだるい系業務を少しでも手助けできればと考えると、やっぱりexe化して利用範囲を広げることが必須項目となってきます。

簡単な流れとしては、以下のような感じです。



1.py2exeのページからpy2exe本体のプログラムを拾ってくる。
http://www.py2exe.org/

2.インストールする。

3.setup.pyというexe化専用のスクリプトを書く。

4.setup.pyとexeにしたいスクリプトを同じディレクトリに置いて、コマンドプロンプトから該当ディレクトリに移動し、python setup.py py2exeを実行する。

setup.pyは結構詳しく解説しているサイトがいっぱいあるので、ググるといろいろ見つかると思いますが、僕が書いたのは以下のような内容です。


from distutils.core import setup
import py2exe

option = { "compressed"  : 1 , "optimize"  :   2 , "bundle_files"  : 3 ,}
# bundle_filesを3にしておくと、exe自体のファイルサイズを小さく抑えることができます。

setup( option = { 'py2exe' : option },  
windows = [{'script' : 'test.py', 'icon_resources':'icon.ico'}], zipfile = 'lib¥libs.zip' )
# windowsにすると、コンソールが表示されずにプログラムが実行されます
# icon_resourcesでexeのiconにしたいiconファイルを指定します。
# zipfileを設定することにより、ディレクトリ配下にlibというフォルダを作成し、
# ライブラリを固めてくれるので、見た目がよくなります。
これをsetup.pyで保存し、上記の4を実行します。すると、distというフォルダが勝手に作られて、そこにexe化されたスクリプトが配置されます。

かなりハマったのは、exe自体にアイコンをくっつける部分です。
これはググっても解決策を見つけることができなかったのですが、問題はアイコンファイル自体にありました。

.icoファイルというのは16*16, 32*32, 48*48, 256*256という複数種類の画像からできている一つの画像ファイルで、プログラムのアイコンとして表示するには、上記のそれぞれの要素を持った.icoファイルを用意しなければならないようです。

windowsだと、アイコンウィザードというプログラムでうまく作成できました。
これでやっとオリジナルプログラムの第一号が公開できそうです。

あとは試験項目をひたすらこなすだけ!


0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...