以下の手順にて、パッケージを作成します。
ここでは、テスト用サンプルプログラムをパッケージ化することにします。
独自開発環境の作成
$ virtualenv myenv ※myenvは、独自開発環境のディレクトリ。何でもよい。
独自開発環境の設定を有効にする
$ cd myenv ※開発環境ディレクトリに移動する $ source bin/activate ※独自開発環境のコマンドを有効にする
これで、pythonコマンドやpipコマンドを打ち込むと、myenv/bin/直下のプログラムファイルが実行されるようになります。
PasteScriptのインストール
PasteScriptは、Pythonプログラムをパッケージ化するためのツールです。
$ pip install PasteScript
パッケージの作成
$ paster create -t basic_package htmlele ※htmleleはパッケージ名
エントリーポイントの設定
インストールしたときにコマンドとして使えるプログラムを設定する。
■htmlele/setup.py
# コマンド名 = パッケージディレクトリ.ソースファイル:関数名 entry_points=""" [console_scripts] mypackage = mypackage.init:main """,
プログラムファイルの作成
mkpage.pyを以下の位置に作成する。
mypackage(パッケージルートディレクトリ。pasterコマンドで作ったやつ) ├── mypackage │ ├── __init__.py │ └── init.py ├── setup.cfg └── setup.py
■init.pyの内容(サンプル)
def main(): print('mypackageを起動します')
パッケージの作成
パッケージルートディレクトリ(mypackage)で以下のコマンドを入力する。
$ python setup.py bdist_egg
distディレクトリが生成され、その中に.eggファイルが作成される。
[訂正] 2018/05/11
『エキスパートPython 改訂第2版』P.177によれば、最近のPython界隈ではPyPAの努力により、ビルド配布物にeggではなくwheelを使用するとのこと。
$ python setup.py bdist_wheel
distディレクトリの中に、.whlファイルが作成される。
開発中のコードを独自開発環境のsite-packagesディレクトリの中からリンクさせる
この作業は特に必要というわけではないが、プログラム修正のたびにパッケージインストールしなくても済むように行っておく。
パッケージルートディレクトリ(htmlele)で以下のコマンドを入力する。
$ python setup.py develop