pyenv-winを使ってWindows上にPython環境を構築する
1.はじめに
pyenv-winを使用することで以下のことができます。
- Windows環境で簡単にPythonを導入することができる
- 複数のPythonのバージョンを管理することができる
- Pythonのバージョンを簡単に切り替えることができる
本記事では以下を実施します。
- pyenv-winの導入
- pyenv-winを使ってPythonのバージョンを指定してインストールする
2.pyenv-winの導入
以下をベースpyenv-winを導入していきます。
2-1. pyenv-winの導入方法
PowerShellを起動する。
以下コマンドで実行ポリシーを変更する。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
以下コマンドで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"
実行時ログ
PS C:\Windows\system32> 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\ユーザ名
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2024/08/03 18:10 .pyenv
pyenv-win is successfully installed. You may need to close and reopen your terminal before using it.
& : File C:\Users\ユーザ名\install-pyenv-win.ps1 cannot be loaded because running scripts is disabled on this system. For
more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:173
+ ... n.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
3.バージョンを指定してPythonをインストールする
ここでは、pyenv-winの導入ができていることを確認し、
実際にpyenv-winを使ってPythonをインストールします。
3-1. py-envの導入確認
pyenv-winが導入できていることを確認する。
PowerShellを再起動し以下実行する。
pyenv-winのバージョンが表示されれば導入完了。
PS C:\Windows\system32> pyenv --version
pyenv 3.1.1
3-2. インストール可能なPythonのバージョン確認
下記コマンドでインストール可能なPythonのバージョンリストを確認する。
pyenv install --list
3-3. Pythonのバージョンを指定してインストールする
以下コマンドでPythonのバージョンを指定してインストールできます。
pyenv install 3.11.9
実行時ログ
PS C:\Windows\system32> pyenv install 3.11.9
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Info] :: Mirror: https://downloads.python.org/pypy/versions.json
:: [Info] :: Mirror: https://api.github.com/repos/oracle/graalpython/releases
:: [Downloading] :: 3.11.9 ...
:: [Downloading] :: From https://www.python.org/ftp/python/3.11.9/python-3.11.9-amd64.exe
:: [Downloading] :: To C:\Users\ユーザ名\.pyenv\pyenv-win\install_cache\python-3.11.9-amd64.exe
:: [Installing] :: 3.11.9 ...
:: [Info] :: completed! 3.11.9
3-4. 利用するPythonを指定する
下記コマンドで利用するPythonのバージョンを指定する。
pyenv global 3.11.9
下記のように指定したPythonのバージョンが表示されれば完了。
PS C:\Windows\system32> pyenv global 3.11.9
PS C:\Windows\system32> python --version
Python 3.11.9
Appendix
pyenv-winのインストールが失敗する場合
私の実行時には以下パターンで失敗しました。
- 実行ポリシーが変更されていない(2-1最初の手順)
- VSCode上などでPowerShellが開かれていると失敗する場合がありました
また、pyenv-winが正常に動作しない場合は
- 「C:\Users\ユーザ名\.pyenv」フォルダを削除して再インストールする。
- 環境変数を再確認する
pyenv-winの環境変数について
変数名 | 変数値 |
---|---|
Path | C:\Users\ユーザ名\.pyenv\pyenv-win\bin |
Path | C:\Users\ユーザ名\.pyenv\pyenv-win\shims |
PYENV | C:\Users\ユーザ名\.pyenv\pyenv-win\ |
PYENV_HOME | C:\Users\ユーザ名\.pyenv\pyenv-win\ |
PYENV_ROOT | C:\Users\ユーザ名\.pyenv\pyenv-win\ |
pipのSSL設定
pipコマンドでライブラリインストール時に、SSL関連のエラーが出る場合、
以下コマンドでpipのSSL設定を行うことができます。
pip config set global.cert 証明書のパス
最新のPythonのバージョンがない場合はpyenv-winをアップデートする
Python3.13をインストールしようと、インストール可能なPythonのバージョンリストを確認したところ以下が得られた。
「3.13.a」や「3.13.b」があるが、「a」や「b」が付いていない「3.13.X」が表示されない。
※「3.13.Xa」や「3.13.Xb」などは、開発バージョンとのことなので基本的にはインストールしない。
$ pyenv install -l
3.13.0a1-win32
3.13.0a1-arm
3.13.0a1
3.13.0b4-win32
3.13.0b4-arm
3.13.0b4
この場合、pyenv-winをアップデートすることで、インストール可能なPythonのバージョンリストを更新することができる。
$ pyenv update
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Info] :: Mirror: https://downloads.python.org/pypy/versions.json
:: [Info] :: Mirror: https://api.github.com/repos/oracle/graalpython/releases
:: [Info] :: Scanned 227 pages and found 791 installers.
更新後、再度リストを取得すると、「a」や「b」が付いていない「3.13.0」が増えていた。
$ pyenv install -l
3.13.0a1-win32
3.13.0a1-arm
3.13.0a1
3.13.0b4-win32
3.13.0b4-arm
3.13.0b4
3.13.0
Discussion