Pythonの開発では、プロジェクトごとに異なるバージョンを使用する必要がある場合があります。この記事では、pyenvとvenvという2つの主要なツールを使ってPythonのバージョンを簡単に切り替える方法を解説します。
pyenvを使う方法
pyenvはPythonのバージョン管理ツールで、システム全体または特定のプロジェクトでPythonのバージョンを切り替えることができます。ただし、pyenvはmacOSとLinuxでのみ利用可能です。Windowsユーザーは後述のpyenv-win、venvや他の方法を検討してください。
pyenvのインストール方法
macOSでは、Homebrewを使って簡単にpyenvをインストールできます。
# Homebrewを使ったpyenvのインストール
brew install pyenv
# 出力例:
# ==> Downloading https://homebrew.bintray.com/bottles/pyenv-1.2.21.catalina.bottle.tar.gz
# ==> Pouring pyenv-1.2.21.catalina.bottle.tar.gz
# 🍺 /usr/local/Cellar/pyenv/1.2.21: 634 files, 2.4MB
Linuxでは、以下のコマンドでインストールできます。
# Linuxでのpyenvインストール
curl https://pyenv.run | bash
# 出力例:
# Cloning into '/home/username/.pyenv'...
# ...
# WARNING: seems you still have not added 'pyenv' to the load path.
インストール後、シェルの設定ファイル(.bashrcや.zshrc)に以下の行を追加します。
# .bashrcや.zshrcに追加する設定
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# 設定を反映させる
source ~/.bashrc # または source ~/.zshrc
Pythonのバージョンをインストールする
pyenvを使って特定のPythonバージョンをインストールします。
# 利用可能なPythonバージョンを確認
pyenv install --list
# 出力例:
# Available versions:
# 2.7.18
# 3.6.12
# 3.7.9
# 3.8.6
# 3.9.0
# ...
# Python 3.9.0をインストール
pyenv install 3.9.0
# 出力例:
# Downloading Python-3.9.0.tar.xz...
# Installing Python-3.9.0...
# Installed Python-3.9.0 to /home/username/.pyenv/versions/3.9.0
Pythonのバージョンを切り替える
インストールしたPythonバージョンを使用するには、以下のコマンドを実行します。
# グローバルにPythonバージョンを設定
pyenv global 3.9.0
# 出力例: (出力なし、成功時)
# 現在のPythonバージョンを確認
python --version
# 出力例:
# Python 3.9.0
特定のディレクトリでのみ異なるバージョンを使用したい場合は、localコマンドを使います。
# 現在のディレクトリにPythonバージョンを設定
pyenv local 3.8.6
# 出力例: (出力なし、成功時)
# .python-versionファイルが作成されます
ls -la | grep python-version
# 出力例:
# -rw-r--r-- 1 username staff 6 Oct 15 10:30 .python-version
Windowsでのpyenv-winを使う方法
Windowsユーザーは、pyenvの代替としてpyenv-winを使用できます。pyenv-winはpyenvのWindows版で、同様の機能を提供します。
pyenv-winのインストール方法
PowerShellを管理者権限で開き、以下のコマンドを実行します。
# GitHubからpyenv-winをインストール
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
# 出力例:
# Downloading pyenv-win...
# pyenv-win is installed successfully.
# ...
インストール後、環境変数が自動的に設定されますが、PowerShellを再起動して変更を反映させる必要があります。
Pythonのバージョンをインストールする
pyenv-winを使って特定のPythonバージョンをインストールします。
# 利用可能なPythonバージョンを確認
pyenv install --list
# 出力例:
# Available versions:
# 2.7.18
# 3.6.8
# 3.7.9
# 3.8.10
# 3.9.13
# ...
# Python 3.9.13をインストール
pyenv install 3.9.13
# 出力例:
# :: [Info] :: Downloading Python-3.9.13...
# :: [Info] :: Installing Python-3.9.13...
# :: [Info] :: Installed Python-3.9.13 to C:\Users\username\.pyenv\pyenv-win\versions\3.9.13
Pythonのバージョンを切り替える
インストールしたPythonバージョンを使用するには、以下のコマンドを実行します。
# グローバルにPythonバージョンを設定
pyenv global 3.9.13
# 出力例: (出力なし、成功時)
# 現在のPythonバージョンを確認
python --version
# 出力例:
# Python 3.9.13
特定のディレクトリでのみ異なるバージョンを使用したい場合は、localコマンドを使います。
# 現在のディレクトリにPythonバージョンを設定
pyenv local 3.8.10
# 出力例: (出力なし、成功時)
# .python-versionファイルが作成されます
dir -Hidden | findstr python-version
# 出力例:
# -a---- 10/15/2023 2:30 PM 6 .python-version
venvを使う方法
venvはPython 3.3以降に標準で組み込まれている仮想環境作成ツールです。pyenvと異なり、Pythonのバージョン自体を管理するのではなく、既にインストールされているPythonを使って独立した環境を作成します。Windows、macOS、Linuxのすべてのプラットフォームで利用可能です。
仮想環境の作成
venvを使って仮想環境を作成するには、以下のコマンドを実行します。
# Python 3.xの場合
python3 -m venv myenv
# 出力例: (出力なし、成功時)
# 作成された環境を確認
ls -la myenv
# 出力例:
# total 16
# drwxr-xr-x 6 username staff 192 Oct 15 10:35 .
# drwxr-xr-x 3 username staff 96 Oct 15 10:35 ..
# drwxr-xr-x 3 username staff 96 Oct 15 10:35 bin
# drwxr-xr-x 2 username staff 64 Oct 15 10:35 include
# drwxr-xr-x 3 username staff 96 Oct 15 10:35 lib
# -rw-r--r-- 1 username staff 75 Oct 15 10:35 pyvenv.cfg
仮想環境の有効化と無効化
作成した仮想環境を有効化するには、以下のコマンドを実行します。
# Linuxおよび macOSの場合
source myenv/bin/activate
# 出力例:
# (myenv) username@hostname:~$
# Windowsの場合
myenv\Scripts\activate.bat # コマンドプロンプトの場合
# または
myenv\Scripts\Activate.ps1 # PowerShellの場合
# 出力例:
# (myenv) C:\Users\username\project>
# 仮想環境が有効になっていることを確認
where python # Windowsの場合
# または
which python # Linuxおよび macOSの場合
# 出力例:
# /path/to/myenv/bin/python
仮想環境を無効化するには、以下のコマンドを実行します。
# 仮想環境の無効化
deactivate
# 出力例:
# C:\Users\username\project> # Windowsの場合
# username@hostname:~$ # Linuxおよび macOSの場合
複数のPythonバージョンでの仮想環境
異なるPythonバージョンで仮想環境を作成するには、そのバージョンのPythonを使ってvenvを実行します。
# Python 3.8で仮想環境を作成
python3.8 -m venv py38env
# Python 3.9で仮想環境を作成
python3.9 -m venv py39env
# 出力例: (出力なし、成功時)
これにより、異なるPythonバージョンを使った複数の仮想環境を管理できます。
まとめ
Pythonのバージョンを切り替える方法として、主に3つのツールを紹介しました。
- pyenv: システム全体または特定のディレクトリでPythonのバージョンを管理できます。macOSとLinuxで利用可能です。
- pyenv-win: pyenvのWindows版で、Windowsでのバージョン管理を可能にします。
- venv: Python標準の仮想環境ツールで、既存のPythonインストールから独立した環境を作成します。すべてのプラットフォームで利用可能です。
プロジェクトの要件に応じて適切なツールを選択しましょう。複数のPythonバージョンを頻繁に切り替える必要がある場合はpyenvが便利です。一方、特定のプロジェクト用に独立した環境が必要な場合はvenvで十分です。
両方のツールを組み合わせて使用することも可能です。pyenvで複数のPythonバージョンをインストールし、各バージョンでvenvを使って仮想環境を作成するという方法が効果的です。