まず結論
WindowsのPowerShellで仮想環境を有効化するとき、Activate.ps1 が実行できないことがあります。
.\.venv\Scripts\Activate.ps1
これは、PowerShellの実行ポリシーでスクリプト実行が止められている場合があります。
こんなときに読む記事です
次のような場面で止まった人向けです。
.venvは作れたのに有効化できないActivate.ps1が読み込めないと言われる- venvが壊れているのか分からない
まず、仮想環境の作成と有効化は別の操作だと分けて考えます。
venvを作る
仮想環境は次のように作ります。
python -m venv .venv
この時点では、.venv フォルダが作られただけです。
有効化する
PowerShellでは、次のように有効化します。
.\.venv\Scripts\Activate.ps1
ここで止まる場合、PythonではなくPowerShellの制限が原因のことがあります。
一時的に許可する例
学習用のローカル環境では、現在のPowerShellセッションだけ実行を許可する例があります。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
その後、もう一度有効化します。
.\.venv\Scripts\Activate.ps1
コマンドプロンプトの場合
PowerShellではなくコマンドプロンプトを使う場合は、実行するファイルが違います。
.venv\Scripts\activate.bat
使っているターミナルに合わせてコマンドを選びます。
読み方のコツ
Activate.ps1 のエラーは、Pythonコードのエラーではありません。
仮想環境を作れたか、PowerShellで実行が止まっているか、使っているターミナルは何かを分けて確認しましょう。
3行まとめ
- WindowsではActivate.ps1が実行ポリシーで止まることがある。
- venv作成と有効化は別の操作。
- 一時的に実行ポリシーを変える方法が使われることがある。