Windows10のVSCodeでvenvを利用するときの注意点


はじめに

Pythonでvenvを使い始めました。

Windows10,VSCode環境下で導入したのですが、

何点が引っかかったポイントがありました。

それぞれの対処法ついては、検索により比較的容易に情報が手に入りますが、

まとまったものはなかったため、メモとして残します。


venvについて

Pythonの仮想動作環境を作成するための、Pythonの標準パッケージです。

これにより、作成したプロジェクトごとに、

pipの導入状態を、独立させ切り替えることができます。

詳細は、以下の記事が詳しいです。

Qiita - venv: Python 仮想環境管理


Windows10環境下では、PowerShellの実行ポリシーを変える

PythonはPowerShell上で動作します。

仮想環境をActivateするためには、

その機能を持つPowerShell Scriptを実行する必要がありますが、

標準では実行できません

これはPowerShellの実行ポリシー(Execution Policy)によるものです。

ポリシーを変え、PowerShell Scriptを実行する方法はいくつかあります。

Qiita - PowerShellのExecutionPolicyのスコープとかについて詳しく

「管理者権限でPowerShellを開き、実行ポリシーをRemoteSignedにする」

がシンプルな方法となります。

具体的には、管理者権限でPowerShellを開いた後、以下を実行します。

Set-ExecutionPolicy RemoteSigned


開いたPowerShellだけ、実行ポリシーを変えることは可能か

可能です。

コマンドラインのみでvenvを利用しているならば、不都合はないと思います。

PowerShellを開いた後、以下のコマンドを実行するだけです。

Set-ExecutionPolicy RemoteSigned -Scope Process

しかし、VSCodeを使用する場合、不都合があります。

・後述する拡張機能には対応していない

・ターミナル起動時に上記コマンドを強制的に実行することはできるが、

それをすると、「ビルドタスクの実行」でPythonを実行できない。


プロジェクトのパス・フォルダー名には日本語を使わない

仮想環境作成時、

ActivateするためのPowerShellスクリプトに、

プロジェクトのフォルダが環境変数として記録されます。

日本語をパス・フォルダ名に含めるとActivationスクリプトの中身が一部文字化けします。

仮想化が正常に機能しないので、日本語の使用を避けます。


VSCodeに入れる拡張機能

venvに必要な拡張機能は、Microsoft公式の「Python」拡張機能です。


Linting, Debugging (multi-threaded, remote), Intellisense, code formatting, refactoring, unit tests, snippets, and more.



VSCodeでのvenv環境使用方法

1.拡張機能インストール後、venv構築環境でVSCodeを開き、

コマンドパレット(CTRL + SHIFT + P)から、以下のコマンドを選択します。

「Python:インタープリターを選択」

ここから、venv環境のインタプリタを選択します。

2.同じくコマンドパレットから選択できる以下のメニューより、

仮想化されたPython環境を利用できます。

・「Python:REPLを開始」

・「Python:ターミナルでPythonファイルを実行」

・「Python:Pythonターミナルで選択範囲/行を実行」

無題.png