🌟

asdf, poetryでpythonのバージョンを変える

2023/10/12に公開

pythonの環境構築が難しいので、メモです。

環境

  • OS: windows11, WSL(Ubuntu 22.04.2 LTS)
  • バージョン管理: asdf v0.13.1
  • 仮想環境、パッケージ管理: poetry version 1.1.14

やりたいこと

  • poetryで管理している仮想環境(venv)におけるpythonのバージョンを変える

前提

  • asdfのインストール
  • poetryのインストール
  • poetryプロジェクトの作成

手順

  1. 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

  1. pythonの現在のバージョン確認
$ asdf list

python
  3.10.0
 *3.11.0
  3.11.3
  3.12.0
  3.8.10

  1. ローカル(カレントディレクトリ以下)でpythonのバージョン指定
$ asdf local python 3.12.0

  1. pythonのバージョン確認
$ python --version

Python 3.12.0

  1. poetry(venv)で使用しているpythonのバージョン確認
$ poetry run python --version

Python 3.8.10

  1. 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

  1. 確認
$ poetry run python --version

Python 3.12.0

感想

  • pythonの環境構築はいろんなパターンがあって難しい。
  • pythonのバージョン管理にasdf, 仮想環境とパッケージ管理にpoetryを使用するのがわかりやすい(dockerを使用しない場合)気がするが、あんまり事例が出て来ない気がした。
  • あと、結局docker使った方がわかりやすいかもと思った。

参考

https://zenn.dev/os1ma/articles/935f6e653f1052
https://zenn.dev/nnabeyang/articles/7885e4378c2d91
https://zenn.dev/fastsnowy/scraps/d7e0b5d2f14d4c
https://zenn.dev/t4aru/articles/fdc73127b895a5

Discussion