今回は、Pythonのバージョン管理を行えるpyenvについてのメモです。
Node.jsのnodenv・nvmや、Rubyのrbenv等と同じような使い方ができます。
https://github.com/pyenv/pyenv
目次
環境
- Windows:Win11 24H2 OSビルド:26100.4061
- Mac:Sequoia 15.5
- pyenv:2.6.11
- pyenv-win:3.1.1
インストール
・Windows
厳密には、pyenvはWindowsには対応していません。
しかし、pyenv-winというWindows版が存在します。
pyenv-winには一部機能は含まれていない・一部仕様が異なるなど注意点もございますが、
こちらで記載するようなPythonバージョンを複数管理することは問題なくできます。
公式README通りに行う場合、PowerSellを管理者権限で行います。
PowerSell初回実行時など、PowerSellポリシーが実行を許可していない場合、許可をします。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
※ポリシーを戻す(厳しいポリシーに変更)場合は、以下などで可能です。
Set-ExecutionPolicy Restricted -Scope LocalMachine
インストールは、以下の要領で行います。
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
※実行すると、実行した場所にinstall-pyenv-win.ps1がコピーされて残ります。
・Mac
brew install pyenv
※事前にビルド依存ライブラリ(openssl, zlib 等)が必要な場合があります。その場合エラー内容に応じてインストールして下さい。
pyenv 環境変数設定
・Windows
おそらく自動的に追加されます。
そのため、PowerSellやコマンドプロンプトを新しく開きなおすと使用できます。
もしも、環境変数が追加されていなかった場合、追加が必要です。
以下のようなパスでpyenv-winがインストールされていると思われます。
C:\Users\<PCユーザー名>\.pyenv\pyenv-win
PowerSellの場合、以下の要領でインストール場所を確認できます。
$env:USERPROFILE + "\.pyenv\pyenv-win"
こちらを環境変数に追加してください。
・Mac
~/.zshrc(~/.zprofile)、~/.bashrc等、使用しているシェルに合わせて設定します。
eval "$(pyenv init -)"
以下は設定例です。
source ~/.zshrc(~/.zprofile)、source ~/.bashrc などで環境変数を反映させます。
どちらも環境変数まで問題なければ、pyenvの動作確認も兼ねてバージョン確認を行います。
pyenv --version
インストール済みPythonバージョン確認
現在インストール自体はされていて、使用することができるPythonバージョンを確認できます。
表示されていないバージョンは、インストールを行ってからでないと使用できません。
pyenv versions
インストール可能Pythonバージョン確認
インストールが可能なバージョンを確認できます。
こちらで表示された番号をインストール時に指定します。
pyenv install --list
利用可能Pythonバージョンインストール
--listで表示されていたバージョンを指定できます。
pyenv install [バージョン番号]
インストールするとversionsで表示されるようになります。
利用バージョン指定(local)
特定のプロジェクトやフォルダ配下のみで限定的にPythonのバージョンを固定したい場合、以下の要領で行います。
※以下のコマンドを実行する前に、固定したいプロジェクト・フォルダの場所に移動しておきます。
pyenv local [バージョン番号]
設定すると、.python-versionというファイルが生成され、
固定しているバージョン番号が記載されます。
利用バージョン指定(global)
特定のプロジェクト・フォルダではなく、
使用しているユーザー全体で認識される統一バージョンの設定です。
以下のようにlocalの場合と同じ要領で設定できます。
pyenv global [バージョン番号]
利用バージョン指定(shell)
あまり利用機会はないかもしれませんが、
現在のシェルセッションでのみバージョンを指定したい場合、
以下の要領で設定することができます。
pyenv shell [バージョン番号]
優先順位は、Shell > Local > Globalの順番となります。
Pythonバージョンが正しく切り替わらない
元々Pythonをインストールしていた場合に、正常に切り替わらないトラブルが起きることがあります。
その際に確認すべき点を挙げさせて頂きます。
1、動作しているPython実態の確認
・Mac
which python3
・Windows(cmd)
where python3
・Windows(PowerShell)
Get-Command python3
正常にPythonバージョンが切り替わらない場合、
そもそもどのPythonが動作しているか確認します。
2、環境変数の設定確認
動作させたいPythonの実態path以外は含まれないようにし、
できれば動作させたいPython以外はアンインストールすることをおすすめします。
3、特定のツールのみ動作しない場合の確認
稀に、コマンドプロンプト(Windows)やターミナル(Mac)では問題なく動作するが、
VSCodeの統合ターミナルなどでは正しく動作しないなども起きえます。
その場合、IDEごとの設定を確認します。
VSCodeでしたら、"terminal.integrated.shellArgs.osx" に -l を付ける、
または "python.defaultInterpreterPath" に pyenv のパスを直接指定するなど調整が必要な場合もあります。
(環境変数設定後に、IDEを再起動すれば問題なく動作することもあります)
今回のメモは以上です。
他のプログラミング言語のバージョン管理ツールと同じ要領で使用できます。
Mac、Windowsともに同じ要領で管理できます。







![pyenv install [number]](https://syslog.life/wp-content/uploads/2025/10/スクリーンショット-2025-10-24-23.25.49.png)



