🌟

asdf でPythonのバージョン管理

2024/05/27に公開

asdf とは

asdf は、複数の言語やツールのバージョン管理を一括で管理できるツールです。

https://asdf-vm.com/

インストール

Homebrew でインストールします。

$ brew install asdf

シェルの組み込み

こちらを参考にシェルへ組み込みます。シェル起動時に asdf を読み込むように設定します。 exec $SHELL -l でシェルを再起動します。

$ echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
$ exec $SHELL -l
########################################
# asdf
#######################################
. /opt/homebrew/opt/asdf/libexec/asdf.sh

Pythonのプラグインをインストール

Python のプラグインとリポジトリを確認します。

$ asdf plugin list-all | grep python

python                        https://github.com/danhper/asdf-python.git

プラグインをインストールします。

$ asdf plugin add python

利用可能なバージョンを確認

こちらのコマンドで利用可能なバージョンを確認できます。ためしに、python で利用可能なバージョンを確認します。

$ asdf list-all python

...
3.9.14
3.9.15
3.9.16
3.9.17
3.9.18
3.9.19
3.10.0
3.10-dev
3.10.1
3.10.2
3.10.3
3.10.4
3.10.5
...

バージョンをインストール

最新のバージョン(latest)と 3.10.0 をダウンロードします。

$ asdf install python latest
$ asdf install python 3.10.0

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

$ asdf list python

 *3.10.0
  3.12.3

利用するバージョンを指定

グローバルに設定

どのディレクトリでも先ほどダウンロードしたバージョンを利用できるように設定します。

$ asdf global python 3.10.0

利用可能なバージョンを確認します。

$ cat ~/.tool-versions

nodejs 20.0.0
python 3.10.0

Python のバージョンを確認します。

$ mkdir -p ~/Private/temp-20240527
$ cd ~/Private/temp-20240527
$ python --version

Python 3.10.0

ローカルに設定

一部のディレクトリのみで利用するバージョンを設定します。

$ mkdir -p ~/Private/temp-20240512-2
$ cd ~/Private/temp-20240512-2
$ asdf local python 3.12.3

利用可能なバージョンを確認します。

$ cat .tool-versions

python 3.12.3

python のバージョンを確認します。

$ python --version

Python 3.12.3

プラグインのアップデート

プラグインのアップデートします。

$ asdf plugin update python

プラグインの削除

プラグインの削除します。あたりまえですが、プラグインを削除すると、そのプラグインでインストールしたバージョンも削除されます。

$ asdf plugin remove python

さいごに

asdf は、複数の言語やツールのバージョン管理を一括で管理できるツールです。複数の言語やツールを利用する場合には、ぜひ導入してみてください。

Discussion