デフォルトパッケージの作成

宝くじプログラムが完成した暁には、PyPIに登録するつもりなので、あらかじめパッケージを作っておく。

デフォルトパッケージを作成するまでの作業内容は、以下の通り。

宝くじプログラム用開発環境の構築

$ virtualenv lotopy

デフォルトパッケージ作成

lotopyディレクトリに入り、必要なパッケージをインストールする。

$ cd lotopy
$ source bin/activate ※lotopy環境のコマンドを使えるようにする
$ pip install PasteScript

パッケージの作成。
とりあえず、パッケージ名をlotopyとする。
もし、既に使われている場合は後で変更する。

$ paster create -t basic_package lotopy

いろいろ聞いてくるので、適当な内容を入力する。

(入力内容)
version: 0.0.1
description: show loto numbers.
long description: 同上
keywords: 空白
author: solima
author_email: 空白
url: http://www.solima.net/
license_name: GPL
zip_safe: False

以上で、デフォルトパッケージが作成された。

コマンドプログラムの作成

現在の予定では、この宝くじプログラムはコマンドラインから

$ python loto.py 宝くじ種別

のように打ち込んで使うことを想定している。
そのためには、エントリーポイントなるものを設定しなければならない。

scripts/lotopy/setup.pyを開き、以下のように編集する。

# 23行目付近
entry_points="""
# -*- Entry points: -*-
[console_scripts]
loto = lotopy.loto:main
"""

■エントリーポイントのプログラムを作成する
lotopy(パッケージルートディレクトリ)にloto.pyというスクリプトファイルを作成する。

loto.py

def main():
    print('当選番号をお知らせします。')

■パッケージのコンパイル

$ python setup.py bdist_egg

■開発中のコードを宝くじプログラム開発環境のsite-packagesディレクトリの中からリンクさせる

$ python setup.py develop

これで、lotoコマンドが使えるようになった。
また、スクリプトファイルを修正した場合でも、いちいちパッケージを再インストールする必要がなくなる。

一応、ちゃんと動くか確かめてみる。
開発環境のPython関連コマンドがオンになっている状態で、lotoコマンドを打ち込む。

$ loto
当選番号をお知らせします

順調、順調♪