Pythonのバージョン管理:pyenv・miseの使い方と切り替え方法

スポンサーリンク

Pythonのバージョン管理:pyenv・miseの使い方と切り替え方法

はじめに

Pythonを使っていると、こんな場面が出てきます。

  • プロジェクトAはPython 3.11、プロジェクトBはPython 3.13を使っている
  • チームの誰かの環境だけ動かない
  • 新しいPythonを試したいが、今の環境を壊したくない

バージョン管理ツールを使えば、プロジェクトごとにPythonのバージョンを自動で切り替えられます。この記事ではよく使われる pyenv と、最近人気の mise の使い方を解説します。


pyenvとmiseの違い

pyenv mise
特徴 Python専用のバージョン管理ツール Python以外の言語も管理できる
歴史 長く、情報が豊富 比較的新しい(旧rtx)
対応言語 Python Python、Node.js、Ruby、Goなど
設定ファイル .python-version .mise.toml または .python-version

Pythonだけ管理するなら pyenv、複数言語を一元管理したいなら mise がおすすめです。


pyenvを使う

インストール

Mac(Homebrew)

brew install pyenv

シェルの設定ファイルに以下を追加します。

# ~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

設定を反映します。

source ~/.zshrc

インストール確認

pyenv --version
pyenv 2.4.0

Pythonをインストールする

インストール可能なバージョンを確認します。

pyenv install --list

特定のバージョンをインストールします。

pyenv install 3.13.2

インストール済みのバージョン一覧を確認します。

pyenv versions
  system
  3.11.9
* 3.13.2 (set by /Users/username/.pyenv/version)

バージョンを切り替える

グローバル(デフォルト)のバージョンを設定する

pyenv global 3.13.2

プロジェクト単位でバージョンを設定する

プロジェクトのディレクトリで以下を実行します。

pyenv local 3.11.9

.python-version ファイルが作成され、そのディレクトリ以下では自動的に指定したバージョンが使われます。

cat .python-version
# 3.11.9

現在のバージョンを確認する

pyenv version
3.13.2 (set by /Users/username/.pyenv/version)

miseを使う

インストール

Mac(Homebrew)

brew install mise

シェルの設定ファイルに以下を追加します。

# ~/.zshrc
eval "$(mise activate zsh)"

設定を反映します。

source ~/.zshrc

インストール確認

mise --version

Pythonをインストールする

インストール可能なバージョンを確認します。

mise ls-remote python

特定のバージョンをインストールします。

mise install python@3.13.2

バージョンを切り替える

グローバルのバージョンを設定する

mise use --global python@3.13.2

プロジェクト単位でバージョンを設定する

プロジェクトのディレクトリで以下を実行します。

mise use python@3.11.9

.mise.toml ファイルが作成されます。

[tools]
python = "3.11.9"

miseは .python-version ファイルも読み込むため、pyenvで管理されていたプロジェクトでもそのまま使えます。

現在のバージョンを確認する

mise current python
python  3.13.2

プロジェクトに参加したときの流れ

pyenvまたはmiseを使っているプロジェクトをクローンした場合、.python-version または .mise.toml に記載されたバージョンが必要です。

# クローン後
git clone https://github.com/example/project
cd project

# .python-versionを確認
cat .python-version
# 3.11.9

# 該当バージョンをインストール(pyenvの場合)
pyenv install 3.11.9

# または mise の場合
mise install

mise install は設定ファイルを読んで必要なバージョンを自動でインストールしてくれます。


venv(仮想環境)との組み合わせ

バージョン管理ツールでPythonのバージョンを固定したうえで、プロジェクトごとにvenvで仮想環境を作るのが一般的です。

# Pythonバージョンを固定(pyenvの場合)
pyenv local 3.13.2

# 仮想環境を作成
python3 -m venv .venv

# 仮想環境を有効化
source .venv/bin/activate

# パッケージをインストール
pip install -r requirements.txt

バージョン管理ツールは「どのPythonを使うか」を決め、venvは「そのプロジェクト専用の環境」を作ります。両方を組み合わせることで環境の汚染を防げます。


まとめ

操作 pyenv mise
インストール brew install pyenv brew install mise
Pythonインストール pyenv install 3.13.2 mise install python@3.13.2
グローバル設定 pyenv global 3.13.2 mise use --global python@3.13.2
プロジェクト設定 pyenv local 3.13.2 mise use python@3.13.2
現在のバージョン確認 pyenv version mise current python