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.tomlとpoetry.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とそのスマートさがよしなにしてくれるなら嬉しいなーという感じでした。