Linux(WSL) では pyenv を使って Python を複数インストールできました。

この記事では Windows で Python の複数バージョン管理を行います。以下をやります。
- Windows に pyenv-win をインストールする
- pyenv-win を使って、複数の Python をインストールする
- 仮想環境を作り、特定の Python のバージョンを使う
Windowsにpyenv-winをインストールする
pyenv-win 公式ドキュメントに沿ってインストールを行います。
https://github.com/pyenv-win/pyenv-win?tab=readme-ov-file#pyenv-for-windows
PowerShell を「管理者として実行」で起動します。
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"
このエラーが出ました。
& : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\xxx\install-pyenv-win .ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.co m/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:173 + ... n.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1" + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
エラー内の指示通りに Microsoft のサイトを見ます。
https://go.microsoft.com/fwlink/?LinkID=135170
ここの情報も参考にします。
https://github.com/pyenv-win/pyenv-win/issues/332
スクリプトの実行ポリシーを変更する必要がありそうです。
全ての実行ポリシーを見てみます。
> Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Undefined
有効な実行ポリシーを取得してみます。
> Get-ExecutionPolicy Restricted
CurrentUser の実行ポリシーを取得してみます。
> Get-ExecutionPolicy -Scope CurrentUser Undefined
実行ポリシーを以下のコマンドで変更します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
再度インストールコマンドを打つと成功しました。
pyenv-win is successfully installed. You may need to close and reopen your terminal before using it.
PowerShellを立ち上げ直して、pyenv の version を見てみます。
> pyenv version No global/local python version has been set yet. Please set the global/local version by typing: pyenv global <python-version> pyenv global 3.7.4 pyenv local <python-version> pyenv local 3.7.4
Pythonを複数インストールする
pyenv でインストール可能なバージョンは pyenv install –list で見れます。
> pyenv install --list
Linux に合わせて Python 3.9 と Python 3.13 をインストールします。
> pyenv install 3.13.5 > pyenv install 3.9.13
インストール済のバージョンを見てみます。
> pyenv versions 3.13.5 3.9.13
PCで使う Python のバージョンを python global <version> で設定します。
> pyenv global 3.13.5 > pyenv versions * 3.13.5 (set by C:\Users\xxx\.pyenv\pyenv-win\version) 3.9.13
仮想環境でPythonの特定のバージョンを使う
以下を行います。
- Python用のワーキングディレクトリを作成する
- ワーキングディレクトリ内にPythonのバージョンごとの仮想環境を作成する
HOME直下にワーキングディレクトリ作成
コマンドプロンプトを立ち上げ、homeに移動し、ワーキングディレクトリを作成します。
>cd /d c:\Users\xxx >mkdir project_python >cd project_python
仮想環境の作成
Python 3.9 の仮想環境を作成します。
Pythonのバージョンのリストの確認 >pyenv versions * 3.13.5 (set by C:\Users\xxx\.pyenv\pyenv-win\version) 3.9.13 カレントディレクトリのPythonのバージョンを3.9.13にする。 >pyenv local 3.9.13 Pythonのバージョンが変わったことを確認する。 >pyenv versions 3.13.5 * 3.9.13 (set by C:\Users\xxx\project_python\.python-version) 仮想環境の作成 >python -m venv venv_py39 仮想環境の有効化 >.\venv_py39\Scripts\activate 仮想環境でPythonのバージョンの確認 (venv_py39) >python -V Python 3.9.13 仮想環境の無効化 (venv_py39) >deactivate
Python 3.13 の仮想環境を作成します。
Pythonのバージョンのリストの確認 >pyenv versions 3.13.5 * 3.9.13 (set by C:\Users\xxx\project_python\.python-version) カレントディレクトリのPythonのバージョンを3.13.5にする。 >pyenv local 3.13.5 Pythonのバージョンが変わったことを確認する。 >pyenv versions * 3.13.5 (set by C:\Users\xxx\project_python\.python-version) 3.9.13 仮想環境の作成 >python -m venv venv_py313 仮想環境の有効化 >.\venv_py313\Scripts\activate 仮想環境でPythonのバージョンの確認 (venv_py313) >python -V Python 3.13.5 仮想環境の無効化 (venv_py313) >deactivate
以上です。