🐍

WindowsでVSCode+pyenv+venv+pipを使い、Pythonの開発環境を構築する

2023/01/31に公開

複数のプロジェクトでPython開発を行う際、プロジェクト毎にPythonのバージョンや依存パッケージなどを使いわける必要があるかと思います。
本記事ではWindowsで、pyenvとvenvを用いて作成した仮想環境にpipでパッケージをインストールし、Visual Studio Codeで扱うための設定手順について紹介します。

Macで同じことをやりたい場合はこちら
https://zenn.dev/sion_pn/articles/d0f9e45716cabb

環境構築

pyenv-winをインストール

Pythonのバージョン管理ツールであるpyenvのWindows版を、PowerShellを使ってインストールします。
https://github.com/pyenv-win/pyenv-win#installation

まず、Windows PowerShellを管理者権限で開きます。
次に、以下のコマンドでスクリプト実行可否を確認します。

Windows PowerShell
get-executionpolicy

Restrictedという値が返ってきたら、スクリプトの実行が制限されているため、以下のコマンドで権限を変更します。

Windows PowerShell
set-executionpolicy remotesigned

実行ポリシーを変更するか聞かれるので、Yを入力してエンターを押します。

再度get-executionpolicyを実行し、RemoteSignedになっていることが確認出来たら、以下のコマンドを実行します。

Windows PowerShell
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"

本記事では以降もPowerShellを使いますが、CommandPromptを使用したい方はお好みでPowerShellの実行権限を元に戻すことができます。
PowerShellで引き続きpyenvを扱いたい方は、RemoteSigned以上の権限のままにしておきましょう。

Windows PowerShell
set-executionpolicy restricted

なお、インストール直後はまだPATHが正常に通っていない状態なため、次の工程に進む前に一度PowerShellを閉じて開きなおしておくとよいでしょう。

pyenvでpythonをバージョン指定してインストール

pyenvで提供されているバージョンの一覧を取得します。

Windows PowerShell
pyenv install --list

上記コマンドで示されたリストから、バージョンを指定してインストールします。

Windows PowerShell
pyenv install 3.9.13
pyenv install 3.11.1

WindowsはMacと違い、初期状態ではPythonがインストールされていないので、pyenvでPython導入時にpythonコマンドを実行した際に動作するグローバルなPythonバージョンを予め設定しておく必要があります。
上記コマンドでインストールしたPythonで、好きなバージョンをglobal指定しておくとよいでしょう。

Windows PowerShell
pyenv global 3.9.13

また、インストールされているバージョンを削除したい場合はuninstallコマンドが使えます。

Windows PowerShell
pyenv uninstall 3.11.1

Visual Studio Codeをインストール

Visual Studio Codeをインストールします。
https://code.visualstudio.com/#alt-downloads

Visual Studio CodeでPython拡張機能をインストール

Visual Studio CodeでPythonの開発を行うには、以下の拡張機能をVisual Studio Codeに導入する必要があります。
https://marketplace.visualstudio.com/items?itemName=ms-python.python
VSCode内の拡張機能検索機能を使うか、上記リンクのInstallボタンからインストールを行います。

仮想環境の作成

作業ディレクトリへ移動

.pyファイルが格納されている作業ディレクトリをWindows PowerShellで開いて下さい。
Visual Studio Codeで扱う際に、何かしら.pyファイルが存在する必要があるため、新規でプロジェクトを作成する場合は、空のファイルで良いので.pyファイルを作成しておきましょう。

pyenvでPythonのバージョン指定

pyenvでインストール済みのPythonのバージョン一覧を取得します

Windows PowerShell
pyenv versions

インストール済みのバージョンが確認できたら、その中からpyenvを使って当該プロジェクトで使用するPythonバージョンを指定します。

Windows PowerShell
pyenv local 3.9.13

すると、.python-versionというファイルが作成され、このディレクトリでpythonコマンドを実行した場合、今回指定したバージョンのPythonでコマンドが実行されます。

venvで仮想環境を作成

念のため--versionで、pyenv localで指定したPythonのバージョンが反映されているか確認しておきます。

Windows PowerShell
python --version

大丈夫そうであれば、venvで仮想環境を作成します。
今回は慣例に従い仮想環境の名前は.venvとしますが、任意の名前で作成することが可能です。

Windows PowerShell
python -m venv .venv

これで、作業ディレクトリの.venvというディレクトリ以下に仮想環境が作成されました。

仮想環境にパッケージをインストール

作成した.venvにpipでパッケージをインストールします。

まずは、venvで作成した仮想環境を起動します。

Windows PowerShell
.venv/Scripts/activate.ps1

このとき、CommandPromptを使用している場合は、.ps1ではなく、.batで実行します。

仮想環境が起動したら、その後実行するpythonコマンドの影響範囲は、仮想環境内のみに限定されます。

仮想環境のpipをアップデートします。

Windows PowerShell
python -m pip install --upgrade pip

次に、パッケージをインストールします。
今回の例では、scikit-learnをインストールしてみます。

Windows PowerShell
pip install scikit-learn

一通りパッケージのインストールが完了したら、deactivateコマンドで仮想環境を閉じます。

Windows PowerShell
deactivate

Visual Studio Codeで開く

作業ディレクトリを、Visual Studio Codeへドラッグ&ドロップするなどして開きます。
エクスプローラービューに作業ディレクトリ以下のファイル一覧が表示されるので、適当な.pyファイルをクリックします。

VSCode下部のステータスバーの表示がPython専用のものに置き換わるので、ここに'.venv': venvと書かれたインタープリターが表示されていることを確認します。

もし、先ほどvenvで作成した環境ではないものが表示されている場合、インタープリター名の文字をクリックすると、インタープリターの選択画面が開きます。

ここで'.venv': venvと書かれたインタープリターを選択すれば、ステータスバーの表示が切り替わり、venvで作成した仮想環境でVisual Studio Codeを用いた開発が可能になります。

Discussion