🐍

ubuntu22.04 + asdf python 環境の構築時メモ

2023/03/19に公開

ubuntu22.04 + asdf python 環境の構築時メモ

私はpythonやnodejsやrubyなどの言語ランタイムを複数バージョンで管理したいことが多いのですが
dockerで構築することもあれば、dockerでくるまれた環境ではない、素の状態を扱いたいこともあります。その際asdfを使っています。

今回は素のubuntu22.04環境にasdfのpython環境をセットアップすることがあったのですが
いつも片手間で調べながらでやって、依存関係のlibのインストールで手間取るのでそのメモを残しておきます。

手順

1.asdf

asdfはbrewからインストールします。

$ brew install asdf

インストール後にshellの設定にasdf関連のスクリプトを追加します

$ echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.sh\"" >> ~/.bashrc
$ source .bashrc

2.plugin

asdfのpluginにpythonを追加します

$ asdf plugin add python

3.python pluginの依存関係のインストール

asdfでは各言語のバージョンをinstallする際、言語ランタイムのソースコードからビルドをします。
なので、ビルドの依存関係になるライブラリ類やコンパイラ関係が必要になります。
そのインストールをします

$ sudo apt install build-essential zlib1g-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev tk-dev

4.python インストール

pythonのビルド&インストールをします。
例えばaws のlambdaに採用されているpythonのバージョンを3.9系をインストールしたい場合は下記のように指定します。

$ asdf install python 3.9.16

5.asdf でのバージョン指定

asdfでのglobal設定を先程インストールしたバージョンにセットすると

$ asdf global python 3.9.16

下記のようにpythonコマンドを呼びさせるようになります

$ python -V
Python 3.9.16

Discussion