Ubuntuへのpyenv導入とPythonバージョン管理の実践

Ubuntu環境でPython開発を行う際、システム標準のPythonバージョンとプロジェクトで必要なバージョンが異なる場合、依存関係の競合が問題となる。システムのパッケージマネージャ(apt)で無理にバージョンを変更すると、システム全体の挙動に影響を及ぼすリスクがあるため、バージョン管理ツールであるpyenvを導入し、ユーザー領域で安全にPython環境を構築する方法を解説する。

1. 依存パッケージの導入

pyenvによるPythonのビルドに必要な開発ツールおよびライブラリをインストールする。これらが不足するとコンパイルエラーの原因となるため、以下のコマンドで一括して導入する。

sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl wget \
llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev \
libffi-dev liblzma-dev git

2. pyenvのインストールと環境設定

Gitリポジトリをクローンし、ホームディレクトリにpyenvを配置する。

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

次に、シェルの設定ファイル(.bashrcや.zshrc)へ環境変数を追記する。Bashを使用している場合、以下の設定を追記することでpyenvが有効になる。

# 環境変数の設定
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

# pyenvの初期化
eval "$(pyenv init -)"

設定を反映させるため、シェルを再読み込みするか、ターミナルを再起動する。

source ~/.bashrc

正常に導入されたか確認するには、バージョン情報を表示させる。

pyenv --version

3. Pythonのインストールと管理

pyenvを通じて任意のPythonバージョンをインストールする。

# インストール可能なバージョン一覧を確認
pyenv install --list

# 特定バージョンのインストール(例: 3.10.0)
pyenv install 3.10.0

ダウンロード速度の改善

公式サイトからのダウンロードが遅延する場合、ミラーサイトを利用してインストールを高速化できる。あらかじめキャッシュディレクトリへソースコードを配置しておくことで、pyenvはダウンロードをスキップし、キャッシュを利用してビルドを行う。

# キャッシュディレクトリの作成
mkdir -p ~/.pyenv/cache

# ミラーからソースをダウンロード(例:华为云ミラー)
wget -P ~/.pyenv/cache/ https://mirrors.huaweicloud.com/python/3.10.0/Python-3.10.0.tar.xz

# インストール実行
pyenv install 3.10.0

4. バージョンの切り替え

インストールしたPythonバージョンを有効化する方法は2種類ある。

  • グローバル設定: シェル全体で使用するデフォルトバージョンを設定。
pyenv global 3.10.0
  • ローカル設定: 特定のプロジェクトディレクトリだけで有効なバージョンを設定。対象ディレクトリ内で実行する。
pyenv local 3.10.0

現在適用されているPythonバージョンは以下で確認できる。

python --version

5. 環境の削除とメンテナンス

不要になったPythonバージョンやpyenv自体の削除方法は以下の通り。

# 特定バージョンの削除
pyenv uninstall 3.10.0

# pyenv自体のアンインストール
rm -rf ~/.pyenv
# また、設定ファイル(.bashrc等)に追記した環境変数設定も手動で削除する必要がある。

タグ: Ubuntu pyenv Python 環境構築 バージョン管理

7月8日 17:43 投稿