- pyenvってどんなもの?
- 使い方をさくっと知りたい
pyenv は同じ PC に複数バージョンの Python をインストールできるようにするツールです。
Python には多くのバージョンがあり、プロジェクトや環境に応じて異なるバージョンの Python を利用したいシーンは多くあります。
そんな時に pyenv を使うとシステムに複数バージョンの Python をインストールして、プロジェクトごとに使用するバージョンを使い分けられます。
Python を扱う方は実質的に必須のツールとなっていますので、ぜひ使い方をマスターしてください。
pyenv のインストール方法
OS ごとにインストール方法が異なります。
お使いの OS に応じて読み進めてください。
macOSの場合
まだ Homebrew をインストールしていない場合には、以下を実行して Homebrew をインストールしてください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"以下のコマンドを実行して、pyenv をインストールします。
brew update
brew install pyenv続いて、お使いのシェルの設定ファイルを開いてください。
# bash の場合
vi ~/.bash_profile
# zsh の場合
vi ~/.zshrc以下のコードを追記してください。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrcpyenv の初期化スクリプトを実行して、pyenv が管理する Python バージョンを利用できるようにするコマンドです。
最後にシェルの再起動をします。
# bashの場合
source ~/.bashrc
# zshの場合
source ~/.zshrcWindows
Windows では、pyenv の Windows 版である pyenv-win を使用します。
pip install pyenv-win --target $HOME/.pyenvシステムの環境変数として、以下を追加します。
PYENVを%USERPROFILE%\.pyenv\pyenv-winに設定。Pathに%PYENV%\bin;%PYENV%\shimsを追加。
シェルの再起動をします。
# bashの場合
source ~/.bashrc
# zshの場合
source ~/.zshrcLinux
Linux では Git からインストールすることが多いです。
まずは依存関係をインストール。
sudo apt-get update;
sudo apt-get 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 python-openssl git続いて Git Clone します。
git clone https://github.com/pyenv/pyenv.git ~/.pyenvシェル設定ファイルに以下を追加します。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"シェルの再起動をします。
# bashの場合
source ~/.bashrc
# zshの場合
source ~/.zshrc動作確認
以下を実行して、バージョン情報が返ってくれば、インストールは成功です。
pyenv --versionpyenv の基本的な使い方
Python のバージョンをインストールする方法
まずは pyenv で利用可能な Python のバージョンを取得します。
pyenv install --list以下に取得結果を一部抜粋したものを示します。
3.11.0
3.11-dev
3.11.1
3.11.2
3.11.3
3.11.4
3.11.5
3.11.6
3.11.7
3.12.0
3.12-dev
3.12.1
3.13.0a2
3.13-devこの中からインストールしたい Python のバージョンを選んだら、以下のようにコマンドを実行します。
pyenv install 3.11.7これでシステムに対して Python 3.11.7 というバージョンがインストールされます。
特定のバージョンの Python をシステム全体で有効化する
システム全体で Python 3.11.7 を使用するには、以下のコマンドを実行します。
pyenv global 3.11.7特定のディレクトリでのみ、あるバージョンの Python を使う方法
まずは特定のバージョンの Python を使いたいディレクトリにおります。
cd path/to/your/projectその後、以下のコマンドを実行するとそのディレクトリ内では指定した Python のバージョンが採用されます。
pyenv local 3.10.2このコマンドにより、pyenv は .python-version というファイルを作成します。このディレクトリに入るたびに、pyenvがこのファイルを読み取って指定されたバージョンの Python がセットされるようになります。
シェル単位で特定のバージョンに切り替えたい場合
以下のコマンドを実行すると、シェル単位で Python バージョンを切り替えられます。
pyenv shell 3.10.2この場合、シェルを閉じると Python のバージョン情報はリセットされます。
現在のディレクトリで採用されいているバージョンの調べ方
以下のコマンドを実行することで、現在のディレクトリで pyenv により採用されいてる Python バージョンを調べることができます。
pyenv version上記のコマンドを実行すると、以下のバリエーションで値が返ってきます。
- 3.8.18 (set by /Users/username/.pyenv/version)
- 3.10.13 (set by /Users/username/.python-version)
それぞれ解説します。
グローバルで設定されたバージョンを採用している場合
グローバルで設定されている場合には、以下のような値が返ります。
3.8.18 (set by /Users/username/.pyenv/version)
ここで.pyenv/version を指しているので、これはグローバルでセットした Python バージョンを採用しているということになります。
ローカルで設定されたバージョンを採用している場合
ローカルで独自に設定された Python バージョンを採用している場合には、以下のような値が返ります。
3.10.13 (set by /Users/username/.python-version)
ここで.python-versionというファイルを参照していることから、これはローカルでセットされた Python バージョンが採用されていることがわかります。
前述の通り、pyenv local では対象のディレクトリに .python-version ファイルを作成して、そこで バージョンの管理を行なっているからです。
ローカルの設定がされていなければ、そもそも .python-version ファイルは存在しません。
応用的な使い方
環境ごとの依存関係管理
pyenv には pyenv-virtualenv という拡張機能があります。
これはプロジェクトごとに異なる仮想環境を作成し、依存関係を隔離する機能です。
まずは、仮想環境の作成コマンドから。
pyenv virtualenv 3.8.18 venvこちらは最初の一度だけ実行すれば OK です。
仮想環境に入るためには、以下のコマンドを実行します。
pyenv activate venv仮想環境から抜けるためには、以下のコマンドです。
pyenv deactivate本番環境での pyenv の使用
本番環境で pyenv を使うことは推奨されないようです。
理由は以下の通り。
- パフォーマンスの低下
- メンテナンスの複雑性
- 互換性の問題
上記は一例ですが、あまり良いことはなさそうです。
Docker などを活用することを検討した方が良さそうですね。
まとめ
以上のように、pyenv を使うとプロジェクトごとに異なる Python のバージョンを適用することができます。
Poetry との併用をしたい方は、以下の記事も併せて参照して見てください。
» 【Poetry使い方から仮想環境の削除まで】Python パッケージ管理の完全ガイド


コメント