【Python】【Windows】pyenvでPythonのバージョンを管理する
Pythonのバージョン管理を行うpyenvというツールがMac向けにあるが、Windows用もあるので、pyenvでPythonのバージョンを管理する方法を説明する。
複数の仕事やプロジェクトなどでPythonのバージョン管理をする必要がある場合に重宝する。
それにしても、ここ2年ぐらいで、随分とWindowsでの開発がしやすくなった気がする。
Macでのpyenvインストール方法はこちら。
インストール方法はMacとWindowsで異なるが、インストール後にpyenvコマンドの使い方は、どちらもほぼ同じ。
pyenv-winのインストール
pyenv-winのgithubに色々なインストール方法が記載されているが、PowerShellからのインストールが一番簡単だと思われる。
以下のコマンドをPowerShellにコピペして実行する。
1Invoke-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"
1【出力例】
2 ディレクトリ: C:\Users\UserName
3Mode LastWriteTime Length Name
4---- ------------- ------ ----
5d----- 2022/05/26 9:48 .pyenv
6pyenv-win is successfully installed. You may need to close and reopen your terminal before using it.
環境変数へパスを追加
github.com/pyenv-win/add-system-settings
この操作も引き続きPowerShellで行う。
pyenvコマンドへのパスや、pyenvから管理するpythonのパスを設定する。
1[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
2
3[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
4
5[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
6
7[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
githubの説明に記載されているコマンドを入力する。
なお環境変数を設定しているため、以降の操作はPowerShellを再起動してから行う。(再起動しないと、pyenvコマンドが見つからない状態のままとなる)
アプリ実行エイリアスのOFF
Windows10 1905以降の場合、PythonがWindows Storeからもインストールできるようになっているため、この機能をオフにする。
これでpyenvのインストールは完了。
インストール可能なPythonのバージョン確認
インストール可能なPythonのバージョンを確認する。
installに-lの引数を指定することで確認できる。
なお、たくさん出てくるので、findstrなどでメジャーバージョンぐらいは指定した方が良い。
1> pyenv install -l | findstr 3.9
2【出力例】
3・・・
43.9.11-win32
53.9.11
63.9.12-win32
73.9.12
83.9.13-win32
93.9.13
バージョンを指定してPythonをインストール
installコマンドにインストールしたいPythonのバージョンを指定することで、Pythonをインストールする。
なお、複数のバージョンを同時にインストールすることが可能。
1> pyenv install 3.9.13 3.10.4
インストール済みのPythonのバージョン確認
インストールされているPythonのバージョンを確認する。
1> pyenv versions
2【出力例】
3 3.10.4
4* 3.9.13 (set by C:\Users\KentaroAzuma\.pyenv\pyenv-win\version)
「*」がついているのが、globalとlocalで指定されているバージョン。
Pythonのバージョンを変更
globalとlocalの2種類がある。
プロジェクト毎にバージョン管理したい場合、localで指定することも可能だが、venvで仮想環境を作る場合、globalでも十分かもしれない。
localでPythonのバージョン変更
localでPythonのバージョンを指定すると、コマンドを実行したフォルダ以下でPythonを実行する際に、localで設定したバージョンが反映される。
1> cd .\work
2> pyenv local 3.10.4
workフォルダ以下でPythonを実行すると、10.3.4が実行されることになる。
globalでPythonのバージョン変更
globalはlocalが指定されていない場合に使用されるPythonのバージョンとなる。
1> pyenv global 3.9.13
これでlocalが指定されていないフォルダからPythonを実行する場合、3.9.13のPythonが実行されることになる。
Pythonバージョン管理とvenv
Pythonの仮想環境としてvenvを使う場合、venv内のPythonはvenvコマンド実行時のPythonが使用される。
pyenvでglobalやlocalのPythonバージョンを変更してもvenv内のPythonのバージョンには影響しない。
venv内のPythonのバージョンを更新したい場合、localかglobalでPythonのバージョンを変更後にvenvを再作成する必要がある。
指定したバージョンのPythonのアンインストール
古いバージョンのPythonや、使わないマイナーバージョンのPythonなどはアンインストールしておくと、色々なバージョンがあることによる混乱を防げる。
1> pyenv uninstall 3.6.0