Poetryのコマンド

Poetyのコマンドは忘れがちなので、メモしておきます。

仮想環境にPythonをインストール

例えば、Python 3.9.8をインストールする場合。

pyenv install 3.9.8


pyenvを使用して、プロジェクトディレクトリでPython 3.9.8を使用する。

pyenv local 3.9.8


poetryプロジェクトディレクトリで、poetryの仮想環境を再作成。

poetry env use $(pyenv which python)

仮想環境が正しくアクティブになっていることを確認。

poetry shell


仮想環境がアクティブな状態で実行。

python XXXX.py

もしくは

poetry run python XXXX.py

Pythonのバージョンを変更

ライブラリとPythonのバージョンに不整合があり、poetry installが出来ない場合は下記のようにPythonのバージョンを変えてみる

poetry env remove python
poetry env use python3.11
poetry install


以下のコマンドで、新しい仮想環境がPython 3.11を使用しているか確認

poetry run python --version

poetry.lock の不整合の解消

poetryのlockファイルにの不整合があると

pyproject.toml changed significantly since poetry.lock was last generated. Run poetry lock [--no-update] to fix the lock file.

というメッセージが出力されるので、以下のコマンドでlockファイルを更新

poetry lock

Poetryプロジェクトを初期化

以下のコマンドを実行して、プロジェクトを初期化。

poetry init

このコマンドを入力すると、対話形式でプロジェクト名、バージョン、依存関係などを設定できる。質問に応じて回答するか、デフォルト設定を使用するべし。

Poetryの仮想環境管理設定 Poetryには仮想環境の管理に関する設定がある

poetry config virtualenvs.in-project true

のように設定している場合、プロジェクトディレクトリ内に.venvフォルダが作成される。

一方、デフォルト設定(poetry config virtualenvs.in-project false もしくは未設定)の場合は、システムの共有ディレクトリ(通常は~/.cache/pypoetry/virtualenvsなど)に仮想環境が作成される。

ただし、プロジェクトディレクトリに書き込み権限がない場合や特定の条件下では、virtualenvs.in-projectを有効にしていても.venvが生成されない場合がある。

環境変数POETRY_VIRTUALENVS_IN_PROJECTを設定することで、.venvの生成挙動を制御できます。この環境変数がtrueに設定されていると、プロジェクトディレクトリ内に仮想環境が作られる。