Poetry は,Python プロジェクトの依存関係管理とパッケージ管理のためのツールである.
venv が「環境を分ける」こと自体を中心とするのに対し,Poetry は 仮想環境・依存関係・lockfile をまとめて管理できる 点が利点である.
そのため,後から同じ環境を再現したり,他の人と共有したりしやすい.
Poetry は Python 本体を自動ではインストールしない.
そのため,まず自分のコンピュータに Python を入れておく必要がある.
- Python 公式ダウンロードページを開く.
- 自分の OS に合ったインストーラをダウンロードする.
- インストーラの案内に従ってインストールする.
- ターミナルで Python が使えることを確認する.
macOS / Linux:
python3 --versionWindows:
py --versionPoetry 自体は,プロジェクトの仮想環境とは別にインストールする. 公式インストーラを使う方法が簡単である.(詳細は公式サイトを確認)
macOS / Linux:
curl -sSL https://install.python-poetry.org | python3 -Windows (PowerShell):
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -インストール後,次で確認する.
poetry --versionPoetry は既定では仮想環境をキャッシュ領域に作るが,設定によりプロジェクト直下の .venv を使える.
この資料では,.venv を使う形にそろえる.
新しいプロジェクトで次を実行する.
poetry config virtualenvs.in-project true --local新しくプロジェクトを作るには,たとえば次を使う.
poetry init案内に従って project 名や依存関係を設定すると,pyproject.toml が作られる.
ライブラリを追加するには poetry add を使う.
追加した内容は pyproject.toml と poetry.lock に記録される.
例:
poetry add numpy scipy matplotlib pandas jupyter quantecon開発用の依存関係として追加したい場合は,必要に応じて group を使う.
たとえば pytest を開発用として追加するには次のようにする.
poetry add --group dev pytest既に pyproject.toml があるプロジェクトでは,次を実行して依存関係を入れる.
poetry installpoetry.lock がある場合は,その中に記録された版が使われる.
poetry.lock がない場合は,依存関係を解決して新しく作成される.
Poetry 管理下の環境で Python や他のコマンドを実行するには,poetry run を使う.
例:
poetry run pythonpoetry run python script.pypoetry run pytest現在のプロジェクトで使われている仮想環境の場所を確認するには,次を実行する.
poetry env info --path.venv を使う設定が有効であれば,通常はプロジェクト直下の .venv が表示される.
依存関係を更新したい場合は,次を実行する.
poetry updateこれは pyproject.toml の制約の範囲内で依存関係を更新し,poetry.lock を更新する.
VS Code を使う場合は,このプロジェクトの .venv を Python interpreter として選ぶ.
設定方法は vscode-setup.md を参照すること.
pyproject.tomlは,依存関係やプロジェクト設定を記録するファイルである.poetry.lockは,実際に使う依存関係の正確な版を記録するファイルである.poetry.lockは,環境を再現しやすくするため,通常はリポジトリに含める.