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

Others,Rocky Linux/CentOS

pyenvを使ったPythonのインストールとバージョン切り替え方法です。
Rocky Linux環境を例に、pyenvのインストールから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のインストールやPythonのビルドに必要なパッケージをインストールします。
pyenvは"git clone"でインストールするため、まずgitが必要です。
また、pyenvでPythonをソースからビルドするため、コンパイラや各種開発ライブラリも必要になります。

[root@vm-01 ~]# dnf install -y git
[root@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@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の環境変数を設定します。
設定が完了したら、再ログインするか"source /etc/profile.d/pyenv.sh"を実行して変更を反映させます。

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

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

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

pyenvのバージョンを確認

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

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

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

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

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

[root@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@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自体はインストールされますが、一部の拡張モジュール(ssl、sqlite3など)がビルドされていない状態となります。

Pythonのバージョンを確認

Pythonのバージョンを確認します。
インストール直後はまだバージョンが切り替わっていません。
次のセクションで"pyenv global"を使ってバージョンを切り替えます。

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

—広告—

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

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

“pyenv global"を使って、システム全体で使用するPythonのデフォルトバージョンを変更できます。

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

※ pyenvでインストール済みのバージョンに切り替えることができます。"pyenv global system"でOS標準のPythonに戻すことも可能です。

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

“pyenv versions"で、pyenvが管理しているPythonのバージョン一覧を確認できます。
“*"が付いているバージョンが現在有効なバージョンです。"system"はOS標準のPythonを表します。

[root@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ファイルが生成され、指定したバージョンが記録されます。
このファイルを削除すると、globalで設定したバージョンに戻ります。

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

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

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

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

—広告—

最後に

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

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

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

Windows環境へのPythonインストール手順については、こちらで紹介しています。

SeleniumやPlaywrightを利用したブラウザテストの方法については、こちらで紹介しています。

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

スポンサーリンク