Pythonの環境構築で最も多いトラブルのひとつが「どのPythonを使っているのか分からない」問題です。
特にAIの利用では 、Python 3.9系など以前のバージョンが要求されるため、複数のPythonをインストールして使い分ける必要があります。
この記事では、Pythonのバージョンを安全かつ簡単に切り替えるためのツール pyenv(パイエンブ) の導入方法と基本操作を紹介します。
本記事は macOS / Windows 両方に対応しています。
なぜpyenvが必要なのか
Pythonはバージョンによって構文や依存ライブラリが異なります。
たとえば、AI系のライブラリ(PyTorchやTensorFlow)は「特定のPythonバージョンでのみ動作する」ことが珍しくありません。
そのため、プロジェクトごとにPythonのバージョンを切り替える仕組みが必要になります。
これを実現するのが pyenv です。
pyenvの役割と仕組み
pyenvは、複数のPythonバージョンをシステム内に共存させ、プロジェクト単位で使い分けるツールです。
実際には「shim(シム)」と呼ばれる中継レイヤーをPATHの先頭に挿入し、呼び出し元を適切なPython実行ファイルへ切り替える仕組みで動作します。
特徴
- OS標準のPythonに影響を与えない
pyenv localでディレクトリ単位にバージョン固定pyenv globalで全体のデフォルトを設定pyenv versionsでインストール済みの一覧を確認
macOSでのインストール
macのデフォルトPythonは「使わない・消さない」
macには最初からPythonが入っていますが、これはmacOSの動作に必要なシステム用です。
ここに手を加えると、設定アプリやSpotlightなど一部機能が動かなくなる恐れもあります。
そのため、デフォルトのPythonは開発に使わず、また削除しないことが重要です。
開発用のPythonは別にインストールしましょう。
Pythonインストールの方法
macにはいくつかのPython導入の方法がありますが、目的に合わせた選び方が重要です。
App Store:検索すると、多数のPythonを同梱したアプリや学習環境が出てきますが、開発用途にはおすすめしません。
公式インストーラ(python.org):インストールは簡単ですが、複数導入する場合はバージョン管理が難しく上級者向けと言えます。
Homebrew版:手軽に導入できるが、複数環境の切り替えには不向きです。
pyenv版(おすすめ):複数バージョンの切り替えが前提のため、再現性も高く安定します。
バージョンの使い分けを想定すると、「pyenvでPythonを入れて、venvで環境を分ける」のが最も環境の保全が楽になります。
pyenvのインストール方法
macではHomebrewを使うのが最も簡単です。
$ brew install pyenv
シェルに設定を追加し、再起動します。(zsh用です。bash等は適宜読み替えてください)
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ exec $SHELL
その後、任意のPythonバージョンをインストールします。
$ pyenv install 3.11.9
$ pyenv global 3.11.9
$ python -V
最後のコマンドで「Python 3.11.9」と表示されれば完了です。
プロジェクトごとに異なるバージョンを使いたい場合は次のように設定します。
pyenv local 3.10.14
このディレクトリ内では自動的に3.10.14が使われるようになります。
macでよくあるトラブル
- OpenSSL関連のエラー
→brew install openssl readline zlibを先に実行してからpyenv installを再試行します。 - Command Line Toolsがインストールされていない
→xcode-select --installでインストール。
Windowsでのインストール
Windowsでは専用の pyenv-win が提供されています。
PowerShellで次のコマンドを実行します。
winget install pyenv-win.pyenv-win
新しいシェルを開いたあと、Pythonをインストールします。
pyenv install 3.11.9
pyenv global 3.11.9
python -V
注意
初回はPowerShellを再起動しないとPATHが反映されません。
また、古いPythonをアンインストールする必要はありません。pyenvがPATHの優先順位を制御します。
Windowsでのトラブル例
pythonコマンドが旧バージョンを指す
→pyenv rehashを実行し、再起動してPATHを更新。- 管理者権限で実行が必要な場合
→ インストール時だけPowerShellを管理者モードで開きます。
よく使うコマンドまとめ
pyenv install -l # インストール可能なバージョン一覧
pyenv install 3.12.6 # 新しいPythonを追加
pyenv versions # すでにインストール済みの一覧
pyenv global 3.12.6 # 全体デフォルトに設定
pyenv local 3.11.9 # 現在のディレクトリだけ設定
pyenv which python # 実際に使われているPythonの場所を確認
これらを覚えておくと、Python環境の切り替えで迷うことはほぼなくなります。
venvとの違い
pyenvが「Python本体の切り替え」なのに対し、
venvはプロジェクト内のライブラリを隔離する仮想環境です。
通常は次のように併用します。
pyenv local 3.11.9
python -m venv .venv
source .venv/bin/activate
この組み合わせで、バージョンも依存関係も独立した環境が作れます。
pyenvがOS全体を壊さない安心感を与え、venvがプロジェクトを保護します。
PATHの仕組みを理解する
pyenvは「PATHの先頭にshimを置く」ことでバージョンを切り替えています。
確認したいときは次のように実行します。
- mac:
echo $PATH | tr ':' '\n' | head -n 10 - Windows:
echo $env:PATH -split ';' | Select-Object -First 10
.pyenv/shims が先頭にあれば正しく設定されています。
venvを有効化すると、さらに .venv/bin(または Scripts)が優先されます。
よくある質問(FAQ)
Q. pyenvとAnacondaは共存できますか?
→ できます。ただし、PATH競合が起きやすいため、Anacondaを先にインストールしてからpyenvを使うのがおすすめです。
Q. pyenvのアンインストール方法は?
→ macは brew uninstall pyenv、Windowsは winget uninstall pyenv-win.pyenv-win で削除可能です。
Q. Pythonが見つからないと言われます
→ pyenv rehash を実行し、再起動後に pyenv versions で再確認してください。
参考リンク
まとめ
pyenvを導入すれば、Pythonのバージョン管理に悩まされることはほぼなくなります。
特にAI開発やWebフレームワークの実験など、異なる環境を行き来する開発者にとって、
pyenvは「環境を壊さずに試せる保険」です。
次の記事では、このpyenv環境上で使う venv(仮想環境) の作り方を解説します。
安全で再現性のあるPython開発を進めましょう。


