Windowsでpyenv(pyenv-win)をインストールする方法¶
はじめに¶
私は普段PythonのコードをWSLで実行していますが、WSLとは別にWindows側でもPythonを実行する必要がありました。
WSLではpyenv
を使用してPythonをバージョン管理しているため、Windows側でも同様に使用することを考えましたが、pyenv
は公式ドキュメントにWindowsを公式にサポートしておらず、Linux用のWindowsサブシステム以外のWindowsでは動作しまいことが記載されており、pyenv-win
1を使用することが推奨されていました。
本記事では、pyenv-win
の公式ドキュメントを元に確認したインストール方法とWSLのpyenv
との共存方法、PowerShellスクリプトによる更新方法についてまとめたので紹介します。
注意事項¶
本記事は2024/09/16時点の情報です。
最新の情報とは異なる場合がありますので参考になる際はご注意ください。
参考記事¶
Ubuntu環境でのpyenv
のインストール方法は下記の記事を参照ください。
pyenv-winのインストール方法¶
以下の公式手順より、powershellからgitコマンドでpyenv-win
コマンドをインストールします。
1 |
|
環境変数設定¶
以下の公式手順より、環境変数を設定します。
環境変数にPYENV
, PYENV_HOME
, PYENV_ROOT
を追加します。
1 2 3 4 5 |
|
pyenv
コマンドを実行するために、USER PATH
変数に以下のパスを追加します。
念のため、環境変数の編集から実際に上記変数が追加されていることも確認してください。
もし、登録内容に誤りがある場合は、手動で削除して新規追加してください。
1 |
|
以下が表示されれば成功です。
1 2 3 4 5 6 7 |
|
1 2 |
|
【必要な場合のみ】既にWSLでpyenv
を使用している場合の設定について¶
Windows側でpyenv-win
をインストールするとWSL側の$PATH
にpyenv-win
が追加されました。
パスの順番次第ですが、WSLで既にpyenv
を使用している場合、pyenv-win
が優先され、WSL上でインストールした.pyenv
を使用できない場合があります。
そこで、Windows側のpyenv-win
を明示的に$PATH
から除外します。
注意事項¶
- 実行する前に必ず
.bashrc
をバックアップしてください。 username_win
は使用中のWindowsのユーザ名に置き換えてください。username
は使用中のWSL環境のUNIX username
に置き換えてください。
1 |
|
手順¶
WSL側で$PATH
を確認します。pyenv-win
が存在する場合は対象です。
1 2 3 4 |
|
~/.bashrc
に以下関数を追加します。
1 2 3 4 5 6 7 |
|
再度パスを確認し、pyenv-win
が存在しないことと、WSL側のpyenv
のコマンドのパスが表示されれば成功です。
1 2 |
|
【必要な場合のみ】pyenv-winを更新する関数を新規作成する¶
pyenv-win
では更新用のコマンドが存在しないため、関数を追加して対応します。
※ username_win
は使用中のWindowsのユーザ名に置き換えてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
この関数を永続的に使用できるようにするためにPowerShellプロファイルに追加します。
はじめに、PowerShellで以下のコマンドを実行して、PowerShellプロファイルが存在するか確認します。
1 |
|
もし False
が返される場合は以下のコマンドでプロファイルを作成してください。
1 |
|
次に、プロファイルを編集するために以下のコマンドを実行し、上記の関数定義をファイルに追記して保存します。
1 |
|
保存後に以下のコマンドでプロファイルを再読み込みします。
1 |
|
これで PowerShell で pyenvup
と入力すると、pyenv
ディレクトリに移動し、git pull
を実行してpyenv-win
を更新し、元のディレクトリに戻ります。
まとめ¶
Windowsでpyenv(pyenv-win)をインストールする方法について紹介しました。
WSLはWSL2が提供され、インストールから利用まで問題なく環境構築できるようになっていますが、Windows環境でもpythonをバージョン管理してコードを実行したいケースはあると思います。本記事がそのような場合の参考となれば幸いです。
-
pyenv-win
は、pyenv
のコンセプトや仕様を基に、Windows環境向けに独自実装されたPython向けのバージョン管理ツールです。 ↩