\ BLACK FRYDAY! /

【Python】pyenv の初期設定・使い方を徹底解説!

  • 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

以下のコードを追記してください。

eval "$(pyenv init --path)"

pyenv の初期化スクリプトを実行して、pyenv が管理する Python バージョンを利用できるようにするコマンドです。

コマンドのより詳しい説明
  • eval
    • シェルコマンドの一種。
    • 引数として渡された文字列をシェルコマンドとして実行する。
    • 上の例では、pyenv init --pathの出力をシェルコマンドとして実行する
  • $(…)
    • コマンド置換と呼ばれる構文。
    • 先ほどの場合は、pyenv init --pathが実行される。
    • 括弧内のコマンドが実行される。
    • 出力がこの位置に挿入される。
  • pyenv init –path
    • Pythonのバージョン管理ツールで、複数のPythonバージョンをインストールして切り替えることができる。
    • pyenv init は pyenv の初期化スクリプトを実行する。
    • –path オプションは pyenv によって管理されるPythonの実行可能ファイルへのパスを設定するために使用される。

シェルの再起動をします。

# bashの場合
source ~/.bashrc

# zshの場合
source ~/.zshrc

Windows

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 ~/.zshrc

Linux

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 --version

pyenv の基本的な使い方

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 パッケージ管理の完全ガイド

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

karo@プログラマのアバター karo@プログラマ プログラマ

「書くことで人の役にたつ」をモットーに活動中。
本職はプログラマで、Pythonが得意。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)