MENU

WindowsにPyenvを導入する。(pyenv-win)

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」に記載の方法に従います。

  1. Windows環境をインターネットに接続します。
  2. Windows画面の左下のWindowsマーク(「」みたいなアイコン)をクリックし、powershellと打ち込み、検索します。「Windows PowerShell」のアプリが表示されるので、アイコンをクリックするかEnterキーを押して起動します。【画面スクショ3
  3. 以下のコマンドをコピーして、「Windows PowerShell」上にペースト後Enterキーで実行し、PowerShellのスクリプトを一時的に実行できるように変更します。(現在のウィンドウを閉じることで設定は戻ります4。)
    Set-ExecutionPolicy RemoteSigned -Scope Process
  4. 以下のコマンドをコピペして実行し、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"
  5. 実行が無事完了したら、以下のコマンドで「Windows PowerShell」を終了します。
    exit
  6. 左下のWindowsマークを再度クリックし、cmdと打ち込み、検索します。「コマンドプロンプト」のアプリが表示されるので、アイコンをクリックするかEnterキーを押して起動します。
  7. 以下のコマンドをコピーして、「コマンドプロンプト」上にペースト後、Enterキーで実行します。
    pyenv --version
  8. インストールしたpyenv-winのバージョンが表示(e.g.pyenv 3.1.1)されれば、無事インストール完了です。【画面スクショ5】(※正しく表示されない場合はインストールできていないので、表示のエラー内容を含めてGoogle検索し、原因に対処します。)

2. Pyenv上でのPythonインストール

新しいバージョンのPythonを使いたいときは、Pyenv上でまずインストールする必要があります。

  1. 「コマンドプロンプト」を起動します。(1章と同様の方法。)
  2. 以下のコマンドを実行し、Pyenv上でインストールできるPythonバージョンのリストを表示します。【画面スクショ6
    pyenv install -l
  3. リストの中から、新しくインストールしたいPythonのバージョン名をコピーします(3.11.9など)。
  4. 以下のコマンドを実行し、対象バージョンのPythonをPyenv上にインストールします。
    pyenv install <コピーしたバージョン名>
  5. 以下のコマンドを実行し、インストールされたことを確認します。(※インストールしただけでは有効になっていないので、次章の「3. Pythonバージョンの切り替え」を実施して有効化します。)
    pyenv versions

3. Pythonバージョンの切り替え

インストールされたバージョンのいずれかに切り替える際は毎回、以下の手順を実施します。

  1. 「コマンドプロンプト」を起動します。
  2. 以下のコマンドを実行し、Pythonのバージョンを切り替えます。
    pyenv global <インストール済みのバージョン名>
  3. 以下のコマンドを実行し、インストール済みバージョンのうち、現在どれが有効になっているのかを確認します。(記号「*」によって有効バージョンがマークされます。)【画面スクショ7
    pyenv versions
  4. 以下のコマンドをコピペしてEnterキーで実行し、Pythonが起動することと、有効化したバージョン名が表示されることを確認します。(その後Pythonから抜けるにはexit()を実行します。)【画面スクショ8
    python

バージョン切り替えのコマンドにはpyenv local <バージョン名>もありますが、慣れるまでは気にせず「global」だけを使っていれば問題ないかと思います。pyenv local <バージョン名>を実行すると、実行した時点のフォルダ内だけで、そのバージョンが有効になります(配下のフォルダの配下の…も含む)。Windows上のそれ以外のフォルダでは「global」で設定されているバージョンが有効のままとなるので、どのフォルダで作業しているかを意識する必要があり、やや玄人向けです。

4. (今後必要に応じて) Pyenvのアップデート

pyenv install -lを実行したときに、インストールしたいPythonバージョン名が表示されない場合は、pyenv-winのバージョンが古い可能性があります。その場合は、公式マニュアル[2]に記載のアップデート手順を実施します。

  1. Windows環境をインターネットに接続します。
  2. 「Windows PowerShell」を起動します。(1章と同様の方法。)
  3. 以下のコマンドを実行し、PowerShellのスクリプトを一時的に実行できるように変更します。(現在の「Windows PowerShell」のウィンドウを閉じることで設定は戻ります[4]。)
    Set-ExecutionPolicy RemoteSigned -Scope Process
  4. 以下のコマンドを実行し、現在のpyenv-winのバージョンを確認します。
    pyenv --version
  5. 以下のコマンドを実行し、pyenv-winをアップデートします。(※ここでNo updates available.と表示された場合は、インストールされているバージョンが最新版です。)
    &"${env:PYENV_HOME}\install-pyenv-win.ps1"
  6. 実行が完了したら以下のコマンドを実行し、「Windows PowerShell」を終了します。
    exit
  7. 「コマンドプロンプト」を起動します。
  8. 以下のコマンドを実行し、更新後のpyenv-winのバージョンを確認します。
    pyenv --version
  9. 以下のコマンドを実行し、インストールしたい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の使い方については他記事に譲りますが、イメージとしては下図のような感じです。

図5.1. Windows上のPyenv上のPython上でvenvの仮想環境を起動する状態のイメージ図
筆者

ここまでお読みいただき、ありがとうございました!
つづけて、Python開発環境を構築する手順についても、ぜひこちらの記事(↓)をご参照ください!

脚注

  1. 本記事の動作環境
    ・Windows 11 Home 23H2
    ・pyenv-win 3.1.1
    ・Python 3.11.9 ↩︎
  2. “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. ↩︎
  3. (画面スクショ)「Windows PowerShell」アプリの起動方法
    WindowsPowerShellアプリの起動方法のスクショ画像 ↩︎
  4. 余談ですが、今後プログラムの実行を永続的に許可したい場合は、「Windows PowerShell」のアプリを「管理者権限で実行」してから、以下のコマンドを実行します。(セキュリティ的に弱くなるので、自己責任でお願いします。)
    Set-ExecutionPolicy RemoteSigned ↩︎
  5. (画面スクショ)pyenv-winのバージョン確認
    ↩︎
  6. (画面スクショ)インストールできるPythonバージョン一覧の確認
    ↩︎
  7. (画面スクショ)Pyenvで有効になっているPythonバージョンの確認
    ↩︎
  8. (画面スクショ)Python実行時のバージョン確認
    ↩︎
アイキャッチ画像。タイトルは、WindowsにPyenvを導入する。(pyenv-win)

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

筆者

ユーマン
在籍: 大手SIer企業
職務: Python歴6年の開発職 / 異動でインフラ入門中
大学: ロボ設計/PV制作 @NHKロボコン優勝サークル
大学院: 学会発表にて2度優秀賞 @AI研究
目標: ふと思いついたモノを何でもつくれちゃう人
好き: Python / Excel / 定時退社 / カフェ作業 / 自己分析 / 友達と遊ぶこと / ホラー映画 / 平成アニメ / お散歩・登山 / スキー / ミスチル / 笑顔がステキな方
目次