FC2ブログ

1日3タックルを目指して頑張ります。 ロリ巨乳が大好きです。 > 今日の3タックルTopへ

Top /  若干エンジニアらしい話 /  Python /  py2exe でお手軽にツールを作ってみよう!
« システムアーキテクト  |  寒すぎ »

py2exe でお手軽にツールを作ってみよう!

 2011/12/22 (Thu) -  カテゴリ:  若干エンジニアらしい話 »  Python

ちょこっとしたツールを作るには Python が激しく便利なんだけど、 Python が入ってない端末だと実行できないのが玉にキズ というわけで Windows の実行ファイルが作れる py2exe なんつーものを試してみた。

まずは py2exe をインストールしないことには始まらないので py2exe のインストーラを入手する。(http://sourceforge.net/projects/py2exe/ からダウンロードできる。)

Files → py2exe → 0.6.9 とたどっていって、自分の Windows にインストールされている Python のバージョンに合った実行ファイルをダウンロードする。(2011/12/22 時点で 0.6.9 が最新) ちなみに、自分の Windows にインストールされている Python のバージョンは、Python(command line) を起動すれば最初に表示される。

インストーラをダウンロードしたら当然のようにインストールする。ダウンロードしたファイルを実行するだけで、特に難しい手順はない。

ここまでで準備完了! あとは exe ファイル化したい Python スクリプトを用意する。とりあえずサンプルとして、引数に指定したディレクトリ配下のファイルを全て標準出力に出力する ls_R.py を次のように作ってみる。

import os
import sys

argvs = sys.argv[1:]
if not argvs:
    exit(1)
for argv in argvs:
    for r, ds, fs in os.walk(argv):
        if not fs:
            continue
        for f in fs:
            print os.path.join(r, f)

スクリプトを作ったら、次のような setup.py を用意する。(実際にはファイル名は何でも良いはず。)

from distutils.core import setup
import py2exe

setup(console=['ls_R.py'])

日本語のファイル名を使いたいときは、おまじないとして一行目に #coding: ms932 と書いておく。(この場合 setup.py は shift-jis で保存すること)

パイソニアのおまいらには言うまでもないことだと思うけど、おまじないを書かないとおなじみのこのエラーが出る。

C:\xxx>python setup.py py2exe
  File "setup.py", line 4
SyntaxError: Non-ASCII character '\x89' in file setup.py on line 4, but no encod
ing declared; see http://www.python.org/peps/pep-0263.html for details

setup.py ができたら、先ほど作った ls_R.py と同じディレクトリに置き、コマンドプロンプトで次のコマンドを実行する。このとき setup.py の置かれたディレクトリをカレントディレクトリとすること。

c:\xxx> python setup.py py2exe
20111222_1.png

ここまで実行すると setup.py と同じディレクトリに build と dist のディレクトリができる。 20111222_2.png

この dist 内に、 ls_R.exe ができている。(dist 内には、 ls_R.exe を動かすのに必要な dll などが含まれているので、実行ファイルを他のマシンに動かすときは dist ごと移動すること)

20111222_3.png

ls_R.exe を実行するときは、コマンドプロンプトから「c:\xxx>ls_R.exe c:\hoge」のような感じで実行する。

長くなったけど py2exe の使い方終わり。ちなみに我が家の Vist + Python2.7 と会社の Windows7(32bit) + Python2.7 では問題なく動いたよん。ところで、この dist はそのまま再配布してもよいのだろうか…。

« システムアーキテクト  | トップへ |  寒すぎ »

コメント

Comment Form
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTML のタグは使用できません
(AAを貼るときは、[太字] ココにAAを書く [/太字] のように 太字 タグで括るときれいになります。左下の[太]ボタンをクリックして「ずれないAA 小」 というところにAAを書いてください。斜体、下線、打消 で括ってもずれないAAにすることができます。)
http:// は禁止ワードです。
(任意) ID生成と編集に使用します

コメントのプレビューのようなもの

ここにプレビューが出ます。

トップへ

トラックバック

http://3tackle.blog55.fc2.com/tb.php/883-40d8859c

最新記事
カテゴリ
最新コメント
最新トラックバック
月別アーカイブ
カウンタ
_
カレンダー
11 | 2019/12 | 01
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
これはやべぇ

インターネッツの設定をしてあげたついでに、接続確認と称してこのブログを開いたら、気になるあの娘が検索したアイテムがwww

万が一アダルトグッズが表示されたりしたらと思うと股間が熱くなるな。

とか妄想してたけど、インターネッツの設定をしてあげた直後に検索の履歴が残ってるわけないか
(´・ω・`)
にしても使い方によってはこの機能は凶悪だな。

プロフィール

タックル

Author:タックル
三度のメシより大ライスが好きなエンジニアです。
焼肉屋に行ったら最初の一杯は大ライスで乾杯! 全然関係ないけど食堂のカレーなら4杯は軽いよ。

ちなみにロリ巨乳は大ライスより好き!

プライベートでタックルされてくれるロリ巨乳のお友達を24時間365日募集中です。

エントリーの内容はタックルの日々の生活について多少脚色しながら面白おかしく書いている限りなくノンフィクションに近いフィクションです。

嘘を嘘と見抜けない人は(ry

Webサービス
フィードメーター - 今日の3タックル あわせて読みたいブログパーツ
タックル会
個人的なリンク