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等)に追記した環境変数設定も手動で削除する必要がある。