pyenv入門:Pythonバージョンを安全に切り替える基礎

基礎知識

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開発を進めましょう。

タイトルとURLをコピーしました