pyenvを使ったPythonのインストールとバージョン切り替え方法

Others,RockyLinux/CentOS

pyenvを使ったPythonのインストールとバージョン切り替え方法です。
Rocky Linux環境を例に、pyenvのインストール手順からPythonのインストール、Pythonのバージョン切り替えの方法までを紹介しています。
プロジェクト(ディレクトリ)単位でのPythonのバージョン指定方法も確認しています。

※ Rocky Linux release 9.4 (Blue Onyx)を利用して確認しています。
※ OS標準のPythonバージョンは3.9.18です。
※ コマンド例はrootユーザーで実行しています。環境に合わせて適宜sudoを利用してコマンドを実行してください。

スポンサーリンク

pyenvのインストール手順

pyenvとは

複数のPythonバージョンを簡単に管理できるツールです。
異なるPythonバージョンをインストールしたり、デフォルトのPythonバージョンを切り替えることができます。
Pythonのバージョンはシステム全体だけではなく、ディレクトリ単位での指定もできます。

Simple Python Version Management: pyenv

pyenvに必要なパッケージをインストール

pyenvのインストールやpyenvを利用してpythonをインストールするために必要なパッケージをインストールします。
pyenvのインストールは"git clone"で実施するので、gitをインストールします。
pyenvを利用してPythonをインストールする際に必要となるパッケージをインストールします。

[root@test-vm-01 ~]# dnf install -y git
[root@test-vm-01 ~]# dnf install -y gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel

pyenvをインストール

pyenvをインストールします。
デフォルトではホームディレクトリ配下にインストールされます。
“.pyenv"というディレクトリが作成されます。

今回は/usr/local/pyenvを指定してインストールしています。

[root@test-vm-01 ~]# git clone https://github.com/pyenv/pyenv.git /usr/local/pyenv
Cloning into '/usr/local/pyenv’…
remote: Enumerating objects: 25093, done.
remote: Counting objects: 100% (2304/2304), done.
remote: Compressing objects: 100% (423/423), done.
remote: Total 25093 (delta 1890), reused 2204 (delta 1843), pack-reused 22789 (from 1)
Receiving objects: 100% (25093/25093), 5.12 MiB | 26.49 MiB/s, done.
Resolving deltas: 100% (16848/16848), done.

環境変数の設定

pyenvの環境変数を設定します。
設定が完了したら、再度ログインして変更内容を反映させます。

#echoコマンドでファイルに書き込み
[root@test-vm-01 ~]# echo 'export PYENV_ROOT="/usr/local/pyenv"' >> /etc/profile.d/pyenv.sh
[root@test-vm-01 ~]# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile.d/pyenv.sh
[root@test-vm-01 ~]# echo 'eval “$(pyenv init –path)"' >> /etc/profile.d/pyenv.sh

#ファイルの内容を確認
[root@test-vm-01 ~]#
cat /etc/profile.d/pyenv.sh

export PYENV_ROOT="/usr/local/pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval “$(pyenv init –path)"

pyenvのバージョンを確認

“pyenv –version"でバージョンを表示します。
バージョンが表示されればインストールが完了です。

[root@test-vm-01 ~]# pyenv –version
pyenv 2.4.13-1-g3f2ef9e0

pyenvを使ってPythonをインストール

インストール可能なPythonのバージョンを確認

インストールが可能なPythonのバージョンを確認します。
“pyenv install –list"でインストール可能なPythonのバージョンが確認できます。

[root@test-vm-01 ~]# pyenv install –list | grep -E '^\s*[23]\.’
2.1.3
2.2.3
2.3.7
~(中略)~
3.11.9
3.11.10
3.12.0
3.12-dev
3.12.1
3.12.2
~(中略)~
3.14-dev
3.14t-dev

pyenvを利用してPythonをインストール

pyenv install <Pythonのバージョン>でPythonをインストールできます。

[root@test-vm-01 ~]# pyenv install 3.11.10
Downloading Python-3.11.10.tar.xz…
-> https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tar.xz
Installing Python-3.11.10…
Installed Python-3.11.10 to /usr/local/pyenv/versions/3.11.10

※関連パッケージがインストールされていない場合はWARNINGが表示されます。Pythonはインストールされていますが、拡張機能のインストール出来てない状態になります。

Pythonのバージョンを確認

Pythonのバージョンを確認します。
この時点ではPythonのバージョンは切り替わっていません。
pyenvを使ってバージョンを切り替える必要があります。

[root@test-vm-01 ~]# python -V
Python 3.9.18

—広告—

pyenvを利用してPythonのバージョンを切り替え

Pythonのバージョン切り替えはpyenv globalを使う

pyenv globalを使うと、システム全体のPythonのバージョンを変更する事ができます。

[root@test-vm-01 ~]# pyenv global 3.11.10
[root@test-vm-01 ~]# python -V
Python 3.11.10

※pyenvを利用してインストールしたPythonに切り替える事ができます。

pyenv versionsでインストールされているPythonのバージョンを確認

pyenvを利用してインストールしたPythonのバージョンは、"pyenv versions"で確認できます。

[root@test-vm-01 ~]# pyenv versions
system
* 3.11.10 (set by /usr/local/pyenv/version)
3.12.6

※3.12.6を追加でインストールしています。

pyenv localでプロジェクト(ディレクトリ)のPythonバージョンを切り替え

“pyenv local"を使って、特定のプロジェクト(ディレクトリ)で使用するPythonのバージョンを指定できます。
.python-versionファイルが生成され、そこに指定したバージョンが記録されます。
このファイルを削除すると、設定は元に戻ります。

#/tmpのPythonのバージョンを3.12.6に変更
[root@test-vm-01 tmp]#
pyenv local 3.12.6
[root@test-vm-01 tmp]# python -V
Python 3.12.6

#他のプロジェクト(ディレクトリ)のPythonのバージョンは3.11.10のまま
[root@test-vm-01 tmp]#
cd /home/
[root@test-vm-01 home]# python -V
Python 3.11.10

#pyenv localを設定したディレクトリには.python-versionが生成されている
[root@test-vm-01 tmp]#
cat /tmp/.python-version
3.12.6

#.python-versionを削除すると元に戻る
[root@test-vm-01 tmp]#
rm -f /tmp/.python-version
[root@test-vm-01 tmp]# python -V
Python 3.11.10

—広告—

最後に

Rocky Linux環境を例に、pyenvのインストールからPythonのインストール、Pythonのバージョン切り替えまでの手順を簡単にまとめてみました。
引き続き色々試してみたいと思います。

dnfコマンドでのPythonインストールからalternativesコマンドを使ったPythonのバージョン切り替え手順を紹介しています。

pipのインストール手順について紹介しています。

Tera TermやVisual Studio Codeのインストール手順を紹介しています。

スポンサーリンク