pyenvは複数のPythonバージョンを共存・切り替え可能にするバージョン管理ツールである。
WSL上でPython開発環境を整える際、システム標準のPythonを汚さずに複数環境を扱える点で有用である。
ここでは、WSL2 + Ubuntu環境を前提とした最適な手順を解説する。
目次
環境前提
| 項目 | 内容 |
|---|---|
| OS | Windows 10 / 11 |
| WSL バージョン | 2 |
| Linux ディストリビューション | Ubuntu 22.04 以降 |
| 権限 | sudo コマンドが利用可能であること |
依存パッケージのインストール
PythonのビルドにはCコンパイラと各種ライブラリが必要である。これを最初に導入する。
sudo apt update
sudo apt install -y \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev \
libffi-dev liblzma-dev python3-openssl gitこれを省略すると、後のPythonビルドで_sslやreadlineモジュールが欠落する場合がある。
pyenvのインストール(推奨)
公式GitHubリポジトリからpyenvを直接取得する。
この方法が最も安全で確実である。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv環境変数を設定する。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrcインストール確認:
pyenv --version出力例:
pyenv 2.4.17Pythonバージョンのインストール
pyenvが導入できたら、目的のPythonバージョンをインストールする。
pyenv install 3.12.7
pyenv global 3.12.7
python --versionPythonのビルドには数分かかる場合がある。
インストール済みのバージョン一覧を確認する場合は以下を実行する。
pyenv versions(任意)pyenv-virtualenvの導入
プロジェクト単位で仮想環境を作成したい場合は、pyenv-virtualenvを追加する。
git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc利用例:
pyenv virtualenv 3.12.7 myenv
pyenv activate myenvAPT経由のインストール(非推奨)
Ubuntuにはpyenvパッケージも存在するが、メンテナンスが遅いため避けるべきである。
sudo apt install pyenvこの方法ではプラグイン連携(pyenv-virtualenvなど)が不完全であり、将来的な互換性に問題を生じやすい。
まとめ
| 方法 | 特徴 | 推奨度 |
|---|---|---|
| GitHubからクローンして設定 | 最新・再現性が高い | ★★★★★ |
| APTでインストール | 手軽だが古い | ★★☆☆☆ |
| asdf経由で管理 | 言語統合管理を行いたい場合に有効 | ★★★☆☆ |
補足:インストール後の確認
pyenvはPATHやシェルの初期化に依存するため、設定ミスがあると動作しない。
トラブル時は次のコマンドで状態を確認する。
pyenv doctor出力される指示に従うことで、環境変数の不整合や依存パッケージ不足を修正できる。
参考URL
この手順に従えば、WSL上で安定かつ最新のpyenv環境を構築できる。
再現性が高く、他の開発環境と同等のPython構成を維持できる点で最も推奨される方法である。