#はじめに
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ターミナルで選択範囲/行を実行」