poetryとは

pythonの環境管理ツールです。
機能としてはpipenvに近い感じでした。

本当に触りだけやってみたリポジトリはこちら。
sample-poetry

インストール

$pip install poetry

プロジェクトを作る

$poetry new sample-project

実行すると下記のファイル・フォルダが作成されます。

sample-project
├── README.rst
├── pyproject.toml
├── sample_project
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_sample_project.py

モジュールの追加

$cd sample-project  # pyproject.tomlがある階層で
$poetry add [--dev] <package name>

これでpoetryが管理している仮想環境内にモジュールが追加されます。
それに伴って、ファイルと依存関係を管理する pyproject.tomlpoetry.lock が作成されます。

Remove Deoendency

$poetry remove <package name>

This is very simple :)

Use Virtual Environment

# not active
$poetry run python -m pytest

# active
$poetry shell

Use Exsting Environment

$poetry install [--no-dev]

Reference

Poetry - Python dependency management and packaging made easy.
GitHub - python-poetry/poetry: Python dependency management and packaging made easy.
Modern Python Environments - dependency and workspace management | TestDriven.io

めも

Pipenvなんかにはないスマートな依存関係の解決ができるよって話らしいです。

確かにpipenv uninstallは依存関係を見てないし、言われてみればinstallでコケることも割とあるので、
poetry removeとそのスマートさがよしなにしてくれるなら嬉しいなーという感じでした。

参考:Pipenv uninstallよりcleanの方が多分便利 - Qiita