テクノロジー · 実用ガイド

Poetry が別の Python を使う?環境を作り直す前に実行系を証明する

シェル、Poetry のプロジェクト環境、実行時の sys.executable・prefix・base_prefix を比較し、制約と設定範囲を確認してから最小の修正を選びます。

ノートパソコン上で3つの匿名実行環境を比較する開発者のオリジナル図。
オリジナルイラスト:環境を置き換える前に、シェル・Poetry・実行時の証拠を比較します。 Watch at Ease

プロンプトが正しく見えても、Poetry はキャッシュ済み環境、既に有効な環境、または Poetry を導入した Python を選ぶことがあります。各層のパスを証明し、誤っている層だけを変更します。

変更前に不一致を記録する

最初から .venv を削除しません。シェルが解決する Python、Poetry の環境パスと実行系、poetry run 内の sys.executable・sys.prefix・sys.base_prefix を記録します。差があれば、シェル、Poetry の関連付け、起動プロセスのどこに問題があるか絞れます。

3つのパスを別々の証拠として読む

シェルの python は PATH の結果、poetry env info --executable はプロジェクトに関連付けられた実行系、sys.executable は実際に起動したプログラムです。prefix と base_prefix で仮想環境と基底実行系を確認します。VIRTUAL_ENV は補助情報にすぎません。

先にプロジェクト制約を確認する

requires-python または Poetry の Python 制約と候補の正確な版を比較します。Poetry が必要な Python をすべて自動導入するわけではありません。互換性を確認後、フルパスまたは poetry env use 3.12 で選びます。候補がなければ通常の管理手段で先に用意します。

設定範囲と既存環境を監査する

poetry config --list と virtualenvs.create、in-project、path、use-poetry-python、CI の環境変数を確認します。キャッシュ環境が既にある場合、in-project を有効にしても自動で .venv へ移りません。削除前に旧パスを記録します。

証拠に合う最小修正を選ぶ

シェルだけが誤るなら PATH や版管理を直します。Poetry が別環境に結び付くなら検証済み実行系で env use を行います。外部環境を意図的に有効化している場合、Poetry は別環境を作りません。CI は PATH、有効環境、設定変数、poetry run の出力をローカルと比較します。

修正を再検証して戻せるようにする

同じコマンドを繰り返し、Poetry の実行系と poetry run の sys.executable が目的環境を示すことを確認します。sys.prefix は環境、sys.base_prefix は基底実行系を示すべきです。最小の失敗コマンド、poetry check、テストを実行し、変更前後を保存します。

プロジェクトと仮想環境を通る匿名実行系の経路を示すオリジナル技術図。
オリジナル技術イラスト:実行経路、プロジェクト環境、基底実行系は別々に確認します。 Watch at Ease