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)

これによって、
flitpoetry など 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 をつくらなくてもよくなった🤗