MENU

Poetry仮想環境のPythonバージョンを変更する方法

Poetryを使用してプロジェクトを管理していると、Pythonバージョンが意図しないもの(例えば、pyenvで設定したグローバルバージョンとは異なるもの)で仮想環境が構築されることがあります。このような場合、仮想環境を再構築してPythonバージョンを変更する手順を解説します。


目次

なぜバージョンが異なるのか?

Poetryは仮想環境を作成する際に、現在の環境で有効なPythonバージョンを基にします。ただし、pyenvやシステム設定に依存するため、グローバル設定が反映されない場合があります。


手順

1. 現在のPythonバージョンを確認する

まず、Poetryの仮想環境で使用されているPythonバージョンを確認します。

poetry env info

出力例:

Virtualenv
Python:         3.11.6
Implementation: CPython
Path:           ~/.cache/pypoetry/virtualenvs/project-name-py3.11
Executable:     ~/.cache/pypoetry/virtualenvs/project-name-py3.11/bin/python

2. 現在の仮想環境を削除する

Poetryが作成した仮想環境を削除します。これは新しいPythonバージョンで仮想環境を作り直すための準備です。

poetry env remove <現在の仮想環境のPythonバージョン>

例:

poetry env remove 3.11

3. 使用したいPythonバージョンを確認・設定する

pyenvを使用している場合は、目的のPythonバージョンをグローバルまたはローカルに設定します。

グローバルに設定

pyenv global 3.12.5

ローカルに設定(特定のプロジェクトディレクトリでのみ有効)

pyenv local 3.12.5

設定を反映するため、rehashを実行します。

pyenv rehash
exec $SHELL

現在のPythonバージョンを確認して、意図したバージョンが反映されているか確認します。

python --version


4. Poetryに新しいPythonバージョンを使用させる

Poetryに使用するPythonバージョンを指定します。

poetry env use 3.12

実行後、再び仮想環境の情報を確認して、新しいPythonバージョンが反映されていることを確認します。

poetry env info

出力例:

Virtualenv
Python:         3.12.5
Implementation: CPython
Path:           ~/.cache/pypoetry/virtualenvs/project-name-py3.12
Executable:     ~/.cache/pypoetry/virtualenvs/project-name-py3.12/bin/python


5. 依存関係を再インストールする

新しい仮想環境に依存関係をインストールします。

poetry install


注意点

  • pyenvで使用するPythonバージョンを変更する際には、rehashを忘れずに実行してください。
  • プロジェクトのpyproject.tomlで指定されているPythonバージョン(例:^3.12)が一致しているかも確認してください。

これでPoetryの仮想環境でPythonバージョンを変更する手順は完了です。環境に応じて柔軟に適用してください!


目次