WindowsでVSCode+pyenv+venv+pipを使い、Pythonの開発環境を構築する
複数のプロジェクトでPython開発を行う際、プロジェクト毎にPythonのバージョンや依存パッケージなどを使いわける必要があるかと思います。
本記事ではWindowsで、pyenvとvenvを用いて作成した仮想環境にpipでパッケージをインストールし、Visual Studio Codeで扱うための設定手順について紹介します。
Macで同じことをやりたい場合はこちら
環境構築
pyenv-winをインストール
Pythonのバージョン管理ツールであるpyenvのWindows版を、PowerShellを使ってインストールします。
まず、Windows PowerShellを管理者権限で開きます。
次に、以下のコマンドでスクリプト実行可否を確認します。
get-executionpolicy
Restricted
という値が返ってきたら、スクリプトの実行が制限されているため、以下のコマンドで権限を変更します。
set-executionpolicy remotesigned
実行ポリシーを変更するか聞かれるので、Y
を入力してエンターを押します。
再度get-executionpolicy
を実行し、RemoteSigned
になっていることが確認出来たら、以下のコマンドを実行します。
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
以上の権限のままにしておきましょう。
set-executionpolicy restricted
なお、インストール直後はまだPATHが正常に通っていない状態なため、次の工程に進む前に一度PowerShellを閉じて開きなおしておくとよいでしょう。
pyenvでpythonをバージョン指定してインストール
pyenvで提供されているバージョンの一覧を取得します。
pyenv install --list
上記コマンドで示されたリストから、バージョンを指定してインストールします。
pyenv install 3.9.13
pyenv install 3.11.1
WindowsはMacと違い、初期状態ではPythonがインストールされていないので、pyenvでPython導入時にpython
コマンドを実行した際に動作するグローバルなPythonバージョンを予め設定しておく必要があります。
上記コマンドでインストールしたPythonで、好きなバージョンをglobal指定しておくとよいでしょう。
pyenv global 3.9.13
また、インストールされているバージョンを削除したい場合はuninstall
コマンドが使えます。
pyenv uninstall 3.11.1
Visual Studio Codeをインストール
Visual Studio Codeをインストールします。
Visual Studio CodeでPython拡張機能をインストール
Visual Studio CodeでPythonの開発を行うには、以下の拡張機能をVisual Studio Codeに導入する必要があります。Install
ボタンからインストールを行います。
仮想環境の作成
作業ディレクトリへ移動
.pyファイルが格納されている作業ディレクトリをWindows PowerShellで開いて下さい。
Visual Studio Codeで扱う際に、何かしら.pyファイルが存在する必要があるため、新規でプロジェクトを作成する場合は、空のファイルで良いので.pyファイルを作成しておきましょう。
pyenvでPythonのバージョン指定
pyenvでインストール済みのPythonのバージョン一覧を取得します
pyenv versions
インストール済みのバージョンが確認できたら、その中からpyenvを使って当該プロジェクトで使用するPythonバージョンを指定します。
pyenv local 3.9.13
すると、.python-version
というファイルが作成され、このディレクトリでpython
コマンドを実行した場合、今回指定したバージョンのPythonでコマンドが実行されます。
venvで仮想環境を作成
念のため--versionで、pyenv local
で指定したPythonのバージョンが反映されているか確認しておきます。
python --version
大丈夫そうであれば、venvで仮想環境を作成します。
今回は慣例に従い仮想環境の名前は.venv
としますが、任意の名前で作成することが可能です。
python -m venv .venv
これで、作業ディレクトリの.venv
というディレクトリ以下に仮想環境が作成されました。
仮想環境にパッケージをインストール
作成した.venv
にpipでパッケージをインストールします。
まずは、venvで作成した仮想環境を起動します。
.venv/Scripts/activate.ps1
このとき、CommandPromptを使用している場合は、.ps1
ではなく、.bat
で実行します。
仮想環境が起動したら、その後実行するpython
コマンドの影響範囲は、仮想環境内のみに限定されます。
仮想環境のpipをアップデートします。
python -m pip install --upgrade pip
次に、パッケージをインストールします。
今回の例では、scikit-learnをインストールしてみます。
pip install scikit-learn
一通りパッケージのインストールが完了したら、deactivate
コマンドで仮想環境を閉じます。
deactivate
Visual Studio Codeで開く
作業ディレクトリを、Visual Studio Codeへドラッグ&ドロップするなどして開きます。
エクスプローラービューに作業ディレクトリ以下のファイル一覧が表示されるので、適当な.pyファイルをクリックします。
VSCode下部のステータスバーの表示がPython専用のものに置き換わるので、ここに'.venv': venv
と書かれたインタープリターが表示されていることを確認します。
もし、先ほどvenvで作成した環境ではないものが表示されている場合、インタープリター名の文字をクリックすると、インタープリターの選択画面が開きます。
ここで'.venv': venv
と書かれたインタープリターを選択すれば、ステータスバーの表示が切り替わり、venvで作成した仮想環境でVisual Studio Codeを用いた開発が可能になります。
Discussion