Windows上で複数のバージョンのPythonをもつ必要があったので調べて、構築した手順をメモします。
初めて環境構築する方にお役に立てれば幸いです。
pyenv とは
pyenv は、Python バージョン管理ツールです。
Python の複数のバージョンを簡単に切り替えることができます。
pyenv は、WSL 以外の Windows 環境では利用できないため、代わりに pyenv-win を利用します。
pyenv(pyenv-win)をインストールする
公式を見ますと、いくつかの方法がありました
- pipでインストールする方法
- zip形式で更新サイトからダウンロードし、指定の場所にファイルを展開する方法
- git cloneする方法
- Chocolateyからインストールする方法(Windows版のパッケージ管理)
Powershellでpipをつかってインストールしたのですが、ERROR: Can not combine '--user' and '--target'
でエラーになってしまいました。
> pip install pyenv-win --target $HOME\\.pyenv
エラーになった場合、後ろに--no-user
をつけると上手くいきました。
> pip install pyenv-win --target $HOME\\.pyenv --no-user
環境変数の追加
PowerShell から次のコマンドを実行して、環境変数 PYENV を設定する。
> [System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
PowerShell から次のコマンドを実行して、PATH に pyenv の実行パスを追加する。
> [System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
環境変数の確認は、PCのアイコンからプロパティを参照、詳細情報を表示し、「システムの詳細設定> 環境変数」から確認できます
今設定した環境変数を読み込ませるために、既存で開いてるコマンドプロンプトは閉じて、新たにコマンドプロンプトを起動します。
PowerShell で pyenv コマンドがインストールされたことを確認します
> pyenv --version
The system cannot find the file specified.
pyenv 2.64.7.4
サポートしてる Python のバージョンの一覧を見る
> pyenv install -l
指定のバージョンをインストールする
> pyenv install 3.8.2
環境に設定できるバージョンの一覧を確認する
> pyenv versions
3.8.2
3.9.2
環境の設定を行う
バージョンの切り替えをしてみます。localの場合は現在のディレクトリにしたpythonを実行します。
globalの場合は全体に反映されます。
> pyenv local 3.8.2
> pyenv versions
* 3.8.2 (set by C:\web-test\.python-version)
3.9.2
> pyenv global 3.8.2
仮想環境の作成
> python -m venv env
作成した仮想環境をアクティベートする
作成した仮想環境にてpipを使いインストールができます。
PS C:\web-test > env\Scripts\activate
(env) PS C:\web-test >
ディアクティベートする場合は以下のコマンドを実行する
> deactivate