Python開発環境をWindowsにインストール(2):pyenv-win編

※当サイトではアフィリエイト広告を利用しています

Python プログラミング

Python開発環境をWindowsにインストール(2):pyenv-win編

はじめに

WindowsにPythonの開発環境をインストールする方法についてまとめました。
Pythonの開発環境構築の方法は複数の方法があります。

本記事では、pyenv-winを使ってPythonをインストールする方法ついて解説します。

pyenvは複数のバージョンの Python を管理するための優れたツールです。
pyenv-winはWindows に移植したpyenvで、Windows環境で複数のPythonバージョンの管理を可能にし、異なるプロジェクト間でPythonのバージョンを柔軟に切り替えられるようにします。

※本記事の内容はWindows11 Pro 24H2で検証しています。

pyenv-win

pyenv-winを使ったPythonのインストールは、柔軟で管理がしやすい方法です。

pyenv-winを利用する主なメリットは以下の通りです:

  1. バージョン管理の柔軟性
  • 複数のPythonバージョンを簡単に切り替え可能
  • プロジェクトごとに異なるPythonバージョンを設定可能
  1. 環境の分離
  • システム全体に影響を与えずに特定のバージョンを使用
  • パッケージの依存関係の競合を防止
  1. 開発生産性の向上
  • 新しいバージョンの迅速な試験
  • レガシーコードと最新プロジェクトの並行開発が容易
  1. セットアップの簡素化
  • 手動でのバージョン管理が不要
  • 環境構築の時間とコストを削減
  1. クロスプラットフォーム互換性
  • LinuxやmacOSの同等ツールと同様の操作性
  • 開発環境の統一性を確保

これらのメリットにより、Pythonの開発環境管理が格段に効率化されます。

インストール方法

インストール方法はいくつかありますが、本記事はpyenv-winのGitHubサイトで説明されている複数の方法の中から、最も簡単とされているPowerShellを使う方法を紹介します。

PowerShell ターミナルで次のインストール コマンドを実行します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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"
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"
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"

インストールされたpyenv-winのバージョンが表示されればインストール成功です。

本記事の執筆時点ではバージョン3.1.1がインストールされました。

次に、下記コマンドで環境変数 PYENV, PYENV_HOM, PYENV_ROOTを設定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")

次のPathを環境変数PATHを加します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")

使い方

Pythonのインストール

インストール可能なPythonのバージョンを確認します。
以下のコマンドを実行します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv install -l
pyenv install -l
pyenv install -l

上のコマンドはすべてのバージョンがリストアップされますが、特定の文字が含まれるものをフィルタリングする方法があります。
上記のコマンドの出力をfindstrコマンドに渡します。
次の例では”3.10”を含む項目のみを表示します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv install -l | findstr 3.10
pyenv install -l | findstr 3.10
pyenv install -l | findstr 3.10

特定のPythonをインストールするコマンドは次のとおりです。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv install <version>
pyenv install <version>
pyenv install <version>

下の例ではバージョン"3.13.1"をインストールします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv install 3.13.1
pyenv install 3.13.1
pyenv install 3.13.1

1つのコマンドで複数のバージョンをインストールすることもできます。
この例ではバージョン"2.7.18"と"3.13.1"をインストールします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv install 2.7.18 3.13.1
pyenv install 2.7.18 3.13.1
pyenv install 2.7.18 3.13.1

これらのインストールコマンドでインストールしても、まだPythonを起動することができません。
globalバージョン、localバージョンのいずれかの指定が必要となります。

globalとlocal

  1. globalバージョン

globalバージョンは次のコマンドで指定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv global <version>
pyenv global <version>
pyenv global <version>

例えば、

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv global 3.9.7
pyenv global 3.9.7
pyenv global 3.9.7

と設定すると、明示的に異なるバージョンを指定しない限り、システム全体で Python 3.9.7が使用されます。

  • globalバージョンは、特定のプロジェクトやディレクトリに指定がない場合に使用されます。
  • システム全体で使用されるデフォルトのPythonバージョンを設定します。
  1. localバージョン

localバージョンは次のコマンドで指定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv local <version>
pyenv local <version>
pyenv local <version>

例えば、

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv local 3.9.7
pyenv local 3.9.7
pyenv local 3.9.7

と設定すると、このコマンドを実行したディレクトリとそのサブディレクトリで、Python3.9.7が優先的に使用されます。

  • localバージョンは、特定のプロジェクトやディレクトリに対して設定するバージョンです。
  • .python-versionという隠しファイルがディレクトリに作成され、そのディレクトリのPythonバージョンを指定します。

優先順位は以下のようになります。

  1. localバージョン(最も優先度が高い)
  2. シェル環境で設定されたバージョン
  3. globalバージョン(最も優先度が低い)

この仕組みにより、異なるプロジェクト間で柔軟にPythonバージョンを管理できます。各プロジェクトの依存関係や要件に応じて、最適なPythonバージョンを簡単に切り替えることができます。

上記コマンドは、あらかじめ指定するバージョンのPythonをインストールしておく必要があります。

rehash

pip を使用してライブラリをインストール、アンインストールした後、または、特定のPythonバージョンのフォルダー内のファイルを変更した後にrehashオプションを使って、それらをシステムで認識させる必要があります。

下の様に、rehashオプションを実行します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Pythonパッケージをインストールした後に実行
pip install <some-package>
pyenv rehash
# Pythonパッケージをインストールした後に実行 pip install <some-package> pyenv rehash
# Pythonパッケージをインストールした後に実行
pip install <some-package>
pyenv rehash
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# 新しいPythonバージョンをインストールした後
pyenv install 3.9.7
pyenv rehash
# 新しいPythonバージョンをインストールした後 pyenv install 3.9.7 pyenv rehash
# 新しいPythonバージョンをインストールした後
pyenv install 3.9.7
pyenv rehash

また、pipで新しくインストールしたライブラリやpyenvで新しいPythonのバージョンが認識されない場合にも、rehashオプションを実行してみてください。

Pythonバージョンを切り替えた後に、Pythonバージョンの確認は次のコマンドを使用します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python --version
python --version
python --version

Pythonのアンインストール

特定のバージョンのPythonをアンイストールする場合、次のコマンドを使用します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv uninstall <version>
pyenv uninstall <version>
pyenv uninstall <version>

下の例ではバージョン"3.13.1"をアンインストールします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv uninstall 3.13.1
pyenv uninstall 3.13.1
pyenv uninstall 3.13.1

インストールされているPythonのバージョンを確認

システムにインストールされているPythonバージョンと現在のアクティブなバージョンは、次のコマンドで確認することができます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pyenv versions
pyenv versions
pyenv versions

実行すると、

  • インストール済みのPythonバージョンの一覧
  • 現在アクティブな(選択されている)バージョン

が表示されます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
* 3.9.7 (set by C:\Users\YourUsername\.pyenv\pyenv-win\version)
3.8.5
3.10.2
* 3.9.7 (set by C:\Users\YourUsername\.pyenv\pyenv-win\version) 3.8.5 3.10.2
* 3.9.7 (set by C:\Users\YourUsername\.pyenv\pyenv-win\version)
  3.8.5
  3.10.2

表示された内容は、次の意味を表しています。

  • *マークは現在のグローバルまたはローカルで選択されているバージョンを示します
  • リストされている各バージョンは、pyenv-winを通じてインストールされたPythonのバージョンです
  • カッコ内の情報は、そのバージョンがどのように設定されたかを示しています

おわりに

pyenv-winは、Windowsでのマルチバージョンのpython管理を簡単にするツールです。
プロジェクトごとに異なるPythonバージョンを使用したい場合に非常に便利です。

下の記事ではMicrosoft StoreからPythonをインストールする方法をしています。
本記事と合わせて確認していただくことをおすすめします。
自分にあったインストール方法を選択する参考にしていただければと思います。

最後までご覧頂きありがとうございました。

(広告)Python関連書籍をAmazonで探す

参考リンク

-Python, プログラミング
-

ja Japanese
S