Windows環境にPyenvを導入する手順を、実際に動作確認しながらまとめました。(本記事の動作環境は脚注1を参照。)
Pyenvを導入すれば、Pythonのバージョンを簡単に切り替えられるようになります。例えば、pyenv global 3.8.10
と1行打ち込むことで、コマンドpython
で呼び出せるpythonのバージョンがPython3.8.10になります。同様にPython3.11.9を使えるようにしたいときは、pyenv global 3.11.9
と打ち込みます。
文字ベースですが、スクショを記事末の脚注にまとめているので、必要に応じて参照ください!
1. pyenv-winのインストール
Pyenvは元々Linux系OS向けなので、Windowsの場合はpyenv-winをインストールします。公式マニュアル2にはいくつかのインストール方法が記載されていますが、本記事では同マニュアルの「Quick start」に記載の方法に従います。
- Windows環境をインターネットに接続します。
- Windows画面の左下のWindowsマーク(「田」みたいなアイコン)をクリックし、
powershell
と打ち込み、検索します。「Windows PowerShell」のアプリが表示されるので、アイコンをクリックするかEnterキーを押して起動します。【画面スクショ3】 - 以下のコマンドをコピーして、「Windows PowerShell」上にペースト後Enterキーで実行し、PowerShellのスクリプトを一時的に実行できるように変更します。(現在のウィンドウを閉じることで設定は戻ります4。)
Set-ExecutionPolicy RemoteSigned -Scope Process
- 以下のコマンドをコピペして実行し、pyenv-winをインストールします。(ファイルのリンク切れの場合は公式マニュアルを参照ください。)
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"
- 実行が無事完了したら、以下のコマンドで「Windows PowerShell」を終了します。
exit
- 左下のWindowsマークを再度クリックし、
cmd
と打ち込み、検索します。「コマンドプロンプト」のアプリが表示されるので、アイコンをクリックするかEnterキーを押して起動します。 - 以下のコマンドをコピーして、「コマンドプロンプト」上にペースト後、Enterキーで実行します。
pyenv --version
- インストールしたpyenv-winのバージョンが表示(e.g.
pyenv 3.1.1
)されれば、無事インストール完了です。【画面スクショ5】(※正しく表示されない場合はインストールできていないので、表示のエラー内容を含めてGoogle検索し、原因に対処します。)
2. Pyenv上でのPythonインストール
新しいバージョンのPythonを使いたいときは、Pyenv上でまずインストールする必要があります。
- 「コマンドプロンプト」を起動します。(1章と同様の方法。)
- 以下のコマンドを実行し、Pyenv上でインストールできるPythonバージョンのリストを表示します。【画面スクショ6】
pyenv install -l
- リストの中から、新しくインストールしたいPythonのバージョン名をコピーします(
3.11.9
など)。 - 以下のコマンドを実行し、対象バージョンのPythonをPyenv上にインストールします。
pyenv install <コピーしたバージョン名>
- 以下のコマンドを実行し、インストールされたことを確認します。(※インストールしただけでは有効になっていないので、次章の「3. Pythonバージョンの切り替え」を実施して有効化します。)
pyenv versions
3. Pythonバージョンの切り替え
インストールされたバージョンのいずれかに切り替える際は毎回、以下の手順を実施します。
- 「コマンドプロンプト」を起動します。
- 以下のコマンドを実行し、Pythonのバージョンを切り替えます。
pyenv global <インストール済みのバージョン名>
- 以下のコマンドを実行し、インストール済みバージョンのうち、現在どれが有効になっているのかを確認します。(記号「*」によって有効バージョンがマークされます。)【画面スクショ7】
pyenv versions
- 以下のコマンドをコピペしてEnterキーで実行し、Pythonが起動することと、有効化したバージョン名が表示されることを確認します。(その後Pythonから抜けるには
exit()
を実行します。)【画面スクショ8】python
4. (今後必要に応じて) Pyenvのアップデート
pyenv install -l
を実行したときに、インストールしたいPythonバージョン名が表示されない場合は、pyenv-winのバージョンが古い可能性があります。その場合は、公式マニュアル[2]に記載のアップデート手順を実施します。
- Windows環境をインターネットに接続します。
- 「Windows PowerShell」を起動します。(1章と同様の方法。)
- 以下のコマンドを実行し、PowerShellのスクリプトを一時的に実行できるように変更します。(現在の「Windows PowerShell」のウィンドウを閉じることで設定は戻ります[4]。)
Set-ExecutionPolicy RemoteSigned -Scope Process
- 以下のコマンドを実行し、現在のpyenv-winのバージョンを確認します。
pyenv --version
- 以下のコマンドを実行し、pyenv-winをアップデートします。(※ここで
No updates available.
と表示された場合は、インストールされているバージョンが最新版です。)&"${env:PYENV_HOME}\install-pyenv-win.ps1"
- 実行が完了したら以下のコマンドを実行し、「Windows PowerShell」を終了します。
exit
- 「コマンドプロンプト」を起動します。
- 以下のコマンドを実行し、更新後のpyenv-winのバージョンを確認します。
pyenv --version
- 以下のコマンドを実行し、インストールしたいPythonバージョン名が表示されたかどうかを確認します。(※表示されない場合は、pyenv-winが対象としているPythonバージョンではないと思われます。)
pyenv install -l
5. 補足
Pyenvでは、1つのPythonバージョンに対して、1つの独立した「Python仮想環境」を立ち上げます。よって例えば、バージョン3.8.10の環境でpipインストールしたPythonライブラリは、バージョン3.11.9の環境では使うことができません。同様に、以前Windowsに直接Pythonをインストールしていた方がいれば、そちらでpipインストールしていたライブラリ群とも独立しています。
また、もし同じPythonバージョンの仮想環境を複数立ち上げたいという場合は、ひとつの方法として、Pyenv上のPython上で、標準ライブラリ「venv」(Python3.3より前なら「virtualenv」)を利用することで実現できます。venvでは、呼び出し元のPythonと同じバージョンの独立のPython仮想環境を立ち上げることができます。venvの使い方については他記事に譲りますが、イメージとしては下図のような感じです。
ここまでお読みいただき、ありがとうございました!
つづけて、Python開発環境を構築する手順についても、ぜひこちらの記事(↓)をご参照ください!
脚注
- 本記事の動作環境
・Windows 11 Home 23H2
・pyenv-win 3.1.1
・Python 3.11.9 ↩︎ - “GitHub – pyenv-win/pyenv-win: pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It’s simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.”, https://github.com/pyenv-win/pyenv-win. ↩︎
- (画面スクショ)「Windows PowerShell」アプリの起動方法
↩︎ - 余談ですが、今後プログラムの実行を永続的に許可したい場合は、「Windows PowerShell」のアプリを「管理者権限で実行」してから、以下のコマンドを実行します。(セキュリティ的に弱くなるので、自己責任でお願いします。)
Set-ExecutionPolicy RemoteSigned
↩︎ - (画面スクショ)pyenv-winのバージョン確認
↩︎ - (画面スクショ)インストールできるPythonバージョン一覧の確認
↩︎ - (画面スクショ)Pyenvで有効になっているPythonバージョンの確認
↩︎ - (画面スクショ)Python実行時のバージョン確認
↩︎