LoginSignup
12
15

More than 1 year has passed since last update.

Windowsでpyenv(pyenv-win)とvenvを使ってPythonの仮想環境を構築

Posted at

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
12
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
15