Python の Setup.py と pip3 を使ってみる
この記事に関連するお話です。
Python ではパッケージ作成を支援するもの (bundler, minilla, mix 等) はないようで、ディレクトリの構成も決まっていないらしい。setup.py がキモになるようで、これをスクラッチから書いていくことになります。
プロジェクトの設定
自由とは言っても最低限書かなければならないものがあるので、次のように作成しました。
from distutils.core import setup setup( name = 'mto', version = '0.1.0', description = 'Mojiretsu wo Tanjun ni Okikae masu.', url = 'https://gihtub.com/user_name/pymto', author = '奈幾乃', author_email = 'U5948U5e7eU4e43@gmail.com', license = 'MIT', packages = ['mto'], scripts = ['bin/pymto'] )
ここで、scripts
で設定している bin/pymto
が実行スクリプトとして bin
以下にインストールされることになります。
プロジェクトの実装
mto/mto.py にライブラリを記述し、bin/pymto に main 関数を置きました。シェバンを付けて実行ビットを立てておきます。
テストの記述
tests/test_mto.py にテストを記述します。ライブラリへのパスを指定するのに苦労しました。tests/
ディレクトリ内で python3 test_mto.py
としてテストをします。テストフレームワークがないから、ね?
setuptools を使うために setup.py に次の行を追加すると、python3 setup.py test
によりテストを実行することができるようになりました。
from setuptools import setup, find_packages
GitHub からのインストール
グローバル環境にインストールする場合は下記のようにして GitHub から直接インストールすることができます。/usr/local/lib/python3.6/site-packages/ 以下にライブラリ、/usr/local/bin/ 以下に実行ファイルがインストールされます。
sudo pip3 install git+https://github.com/user_name/pymto.git
ローカル環境にインストールする場合は下記。$HOME/.local/lib/python3.6/site-packages/
以下にインストールされ、bin/
に pymto
がインストールされます。
pip3 install git+https://github.com/user_name/pymto.git --target $HOME/.local/lib/python3.6/site-packages