🌟
asdf, poetryでpythonのバージョンを変える
pythonの環境構築が難しいので、メモです。
環境
- OS: windows11, WSL(Ubuntu 22.04.2 LTS)
- バージョン管理: asdf v0.13.1
- 仮想環境、パッケージ管理: poetry version 1.1.14
やりたいこと
- poetryで管理している仮想環境(venv)におけるpythonのバージョンを変える
前提
- asdfのインストール
- poetryのインストール
- poetryプロジェクトの作成
手順
- asdfでpythonの当該バージョンをインストール
$ asdf install python 3.12.0
python-build 3.12.0 /home/xxx/.asdf/installs/python/3.12.0
Downloading Python-3.12.0.tar.xz...
-> https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz
Installing Python-3.12.0...
Installed Python-3.12.0 to /home/xxx/.asdf/installs/python/3.12.0
- pythonの現在のバージョン確認
$ asdf list
python
3.10.0
*3.11.0
3.11.3
3.12.0
3.8.10
- ローカル(カレントディレクトリ以下)でpythonのバージョン指定
$ asdf local python 3.12.0
- pythonのバージョン確認
$ python --version
Python 3.12.0
- poetry(venv)で使用しているpythonのバージョン確認
$ poetry run python --version
Python 3.8.10
- poetry(venv)で使用するpythonのバージョン指定(ここではasdfのバージョンに合わせている)
$ which python
/home/xxx/.asdf/shims/python
$ poetry env use /home/xxx/.asdf/shims/python
Recreating virtualenv study in /home/xxx/○○○/.venv
Using virtualenv: /home/xxx/○○○/.venv
- 確認
$ poetry run python --version
Python 3.12.0
感想
- pythonの環境構築はいろんなパターンがあって難しい。
- pythonのバージョン管理に
asdf
, 仮想環境とパッケージ管理にpoetry
を使用するのがわかりやすい(dockerを使用しない場合)気がするが、あんまり事例が出て来ない気がした。 - あと、結局docker使った方がわかりやすいかもと思った。
参考
Discussion