まず結論

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で実行が止まっているか、使っているターミナルは何かを分けて確認しましょう。