sci

最果て風呂

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