📚

poetry+pyenvでバージョン指定がうまくいかない場合

2024/03/08に公開

こんにちは!kirigayaです。
今回はpoetry+pyenvでpythonのバージョン指定がうまくいかない時に試すことを書きます。
Docker使えばええやん!という意見は受け付けませんw
poetryのデフォルトバージョンやbrewでインストールされるpythonバージョンとは別のバージョンでpoetryの仮想環境を作りたいといったことがあると思います。
それではさっそく設定していきましょう。今回は3.12.0から3.10.0に変更します。
※既にpoetryの仮想環境がある人は削除しておきましょう。

poetry env list
poetry env remove 仮想環境の名前

さらにpyproject.tomlファイルのpythonバージョンも変更します

python = "^3.10"

python3.10.0をインストールします

pyenv install 3.10.0

現在のバージョンとインストール済みのバージョンを確認します

pyenv version
pyenv versions

全体で使う場合

pyenv global 3.10.0

プロジェクトごとに設定したい場合はプロジェクトのディレクトリまで移動してからpythonのバージョンを指定します。うまく設定できると.python-versionファイルが作成されます。

cd PROJECT_DIR
pyenv local 3.10.0

次にpoetryの設定をします。プロジェクト直下に.venvを作成する設定です

poetry config virtualenvs.in-project true

pyenvのpythonを指定して仮想環境を作成する

poetry env use ~/.pyenv/shims/python

仮想環境の設定を確認する

poetry env info

どうでしょう?バージョンは3.10.0になっていると思います。
最後に仮想環境を立てて終わりにしましょう。
※ 前回、仮想環境作っていた人はpoetry lock --no-updateしておきましょう。

poetry install --no-root
poetry shell

仮想環境が作成できたと思います。お疲れ様でした。

Discussion