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