pip が 19.02 で pyproject.toml から pip install できるようになった
結論
Poetry + pip 19 で快適!setup.py 書かなくても大丈夫!
背景
pip install 可能な python module を作るには、setup.py を作るやり方がある。(他にもあるらしいがよく知らない)
参考:
Packaging Python Projects — Python Packaging User Guide
pythonのsetup.pyについてまとめる - Qiita
setup.py の書き方もよく理解していないので、package を作るのはめんどいなーというぐらいの認識だった。ところが最近 pip 19.0 で pyproject.toml からのインストールに対応したらしい
Release Notes — pip 19.0.3 documentation
> Implement PEP 517 (allow projects to specify a build backend via pyproject.toml). (#5743)
これによって、
flit やpoetry など pyproject.toml を使って管理するパッケージ管理ツールを使うと、何もしなくても pip install できるようになる!
poetry 好きとしては大歓喜
pyproject で記述されたプロジェクトに対して
pip install git+https://github....
とすればインストールできる。setup.py は不要。以降では Poetry を使った簡単な例を作ってみる。
例
Poetry Project
以下のようにプロジェクトを作る
python -m venv venv poetry init git init .
プロジェクト名などは適当に。できたレポジトリはこちら。
GitHub - ororog/pip-poet-test
このプロジェクトには setup.py が無い。でも pip install できる。 pyproject.toml があるから。
pip install してみる
適当な venv を作って pip install してみる。この際、pip を 19 以上にするのを忘れずに。
pip install --upgrade pip pip install git+https://github.com/ororog/pip-poet-test
これで、コンソールからライブラリを呼び出してみる
>python Python 3.7.2 (default, Mar 22 2019, 18:18:35) [Clang 10.0.0 (clang-1000.10.44.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from pip_poet_test import pip_poet >>> pip_poet.hello() hello
setup.py をつくらなくてもよくなった🤗