【asdfの使い方】asdfで複数バージョンのpythonをインストールする

ぴよこ
複数のpythonのバージョンを使い分けたいんだけど、どうすればいいかな?
まさる博士
それなら、asdfが便利だよ!

みなさん、pythonのインストールはどのようにしていますか?

1つのバージョンだけ使うのであればpythonの公式ページからダウンロードして、インストールするのが簡単です。一方、解析の都合で複数のpythonのバージョンを使い分けたいケースもありますよね。

本記事では、asdfを使って複数のpythonのバージョンをインストールする方法を解説します。

asdfとは

asdfは複数のプログラミング言語やツールのバージョン管理を行うためのツールです。pythonのバージョンをプロジェクトごとに切り替えたり、最新バージョンのツールをインストールしたりするのに便利です。

複数のバージョンのpythonを管理するツールにはpyenvもありますが、asdfではrubyやGoなどの他のプログラミング言語や様々なツールの管理もできるため、より便利です。

asdfのインストール

asdfのインストール手順は下記のリンクの公式ページの手順に従って進めます。ここでは、windowsのwsl2を前提に手順を解説します。

asdfの公式ページ

前準備

gitとcurlが必要なため、下記のコマンドでインストールしておきます。

sudo apt install curl git

asdfのダウンロード

下記のコマンドで、asdfのリポジトリをクローンして、ホームディレクトリ配下にダウンロードします。

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1

‘~(チルダ)’はホームディレクトリを表し、wsl環境では/home/{username}のことです。

~/.asdfディレクトリにダウンロードしたものが入っています。

asdfのインストール

次に、asdfをインストールして使用可能な状態にしていきます。

ホームディレクトリにある~/.bashrcファイルをテキストエディタなどで開き、下記の行を追加します。

. "$HOME/.asdf/asdf.sh"

この操作の意味を理解するためには、bashなどの知識が必要になりますが、これはターミナルなどを開くたびにasdf.shというプログラムを実行する操作を設定する、ということになります。

これでasdfのインストールは完了です。

下記のコマンドでバージョンが表示されるか確認してみてください。もしうまくいかない場合は、ターミナルを一旦閉じて再度開いてから試してみてください。

asdf version

asdfでpythonをインストール

asdfのpythonプラグインの公式ページの手順に従ってインストールを進めます。

前準備

pythonをインストールするのに必要なライブラリをインストールしておきます。

sudo apt update
sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

上記のライブラリがインストールできれば、準備は完了です。

pythonプラグインの追加

下記のコマンドでasdfのpythonプラグインを追加します。

asdf plugin-add python

以下のコマンドでpythonのプラグインが追加されているか確認できます。

asdf plugin list --urls

pythonが表示されていれば、OKです。

次に、インストール可能なpythonのバージョン一覧を下記のコマンドで確認できます。

asdf list-all python

非常にたくさんの種類があることが確認できます。自分の使いたいバージョンをインストールしてみましょう!

pythonのインストール ver1

asdfでは、.tool-versionsというファイルに使用したいツールのバージョンを記載して管理します。

使用する1つ目のバージョンとして、python 3.11.8をインストールしてみます。test1というフォルダを作成し、そこに.tool-versionsというファイルを作成して、下記のように記載します。

python 3.11.8

.tool-versionsファイルが用意できたら、.tool-versionsファイルが存在するディレクトリで下記のコマンドを実行します。

asdf install

無事インストールできたら、pythonのバージョンを確認してみましょう。

python --version

python 3.11.8と表示されていれば、目的のバージョンがインストールできています。

pythonのインストール ver2

次に、別のバージョンのpythonをインストールしてみます。

test2というフォルダを別に作成し、そこにも.tool-versionsファイルを作成します。

.tool-versionsファイルに下記のように記載し、python 3.12.0をインストールしてみます。

python 3.12.0

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

asdf install

インストールできたら、pythonのバージョンを確認します。

python --version

python 3.12.0が表示されていれば、目的のバージョンがインストールできています。これで、test1とtest2という2つのプロジェクトでpythonのバージョンを使い分けることが可能です。

おわりに

本記事では、asdfの使い方を解説しました。asdfはpythonだけではなく様々なツールを管理することが可能ですので、ぜひ気になるツールがあればインストールして使ってみてください!