Python

【Python】【Windows】pyenvでPythonのバージョンを管理する

MAX

Pythonのバージョン管理を行うpyenvというツールがMac向けにあるが、Windows用もあるので、pyenvでPythonのバージョンを管理する方法を説明する。

複数の仕事やプロジェクトなどでPythonのバージョン管理をする必要がある場合に重宝する。

それにしても、ここ2年ぐらいで、随分とWindowsでの開発がしやすくなった気がする。

Macでのpyenvインストール方法はこちら。

あわせて読みたい
【Python】【Mac】pyenvでPythonのバージョン管理をする
【Python】【Mac】pyenvでPythonのバージョン管理をする

インストール方法はMacとWindowsで異なるが、インストール後にpyenvコマンドの使い方は、どちらもほぼ同じ。

スポンサーリンク

pyenv-winのインストール

github.com/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
スポンサーリンク
ABOUT ME
MAX
MAX
ITエンジニア、データサイエンティスト
新卒でSIerに入社し、フリーランスになってWEB系へ転向。
その後AIの世界へ足を踏み入れ、正社員に戻る。 テーブルデータの分析がメイン。
スポンサーリンク
記事URLをコピーしました