はじめに
Windowsにて、Pythonで仮想環境(venv)を作成し、それを有効化(activate)しようとした時、「信頼されていない発行元からのソフトウェアを実行しますか?」という警告が表示されるでしょう。この警告は、システムがPython Software Foundation発行のスクリプトを信頼していないために起こります。この記事では、この際に「常に実行しない」を選択してしまった場合の解決方法を紹介します。
確認したのはWindows10のみです。ただ、Windows11でも同様の操作で同じUIのcertmgrが開かれたので、おそらく解決すると思われます。
問題発生までの流れ
仮想環境を有効化しようとすると、以下のようなメッセージが表示されます。
PS C:〇〇> .\venv\Scripts\activate
この信頼されていない発行元からのソフトウェアを実行しますか?
ファイル C:〇〇\venv\Scripts\Activate.ps1 の発行元は CN=Python Software Foundation, O=Python Software Foundation, L=Beaverton, S=Oregon, C=US
であり、このシステムで信頼されていません。信頼された発行元からのスクリプトのみを実行してください。
[V] 常に実行しない(V) [D] 実行しない(D) [R] 一度だけ実行する(R) [A] 常に実行する(A) [?] ヘルプ (既定値は "D"):
ここで、誤って[V] 常に実行しないを選択してしまった場合、問題が発生します。
以降、このようなメッセージが表示されるでしょう。
PS C:〇〇> .\venv\Scripts\activate
.\venv\Scripts\activate : ソフトウェアの制限のポリシー (グループ ポリシーを使用して作成されたポリシーなど) によって操作がブロックされているため、ファイル
C:〇〇 は読み込めません。
発生場所 行:1 文字:1
+ .\venv\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
解決方法
解決策は、システムにPython Software Foundationを信頼された発行元として追加することです。
- Windowsボタンから「証明書」と入力し、表示される「ユーザー証明書の管理」を選択します
- certmgrウィンドウが開きます
- 「信頼されていない証明書」> 「証明書」にある証明書リストの中から「Python Software Foundation」を見つけます
- この証明書をドラッグ&ドロップで「信頼されたルート証明機関」> 「証明書」に移動させます
証明書を移動させた後、ウィンドウを閉じて、再度activateスクリプトを実行します。先ほどと同様の選択肢が表示された場合は、今度は[A] 常に実行するを選択してください。
PS C:〇〇> .\venv\Scripts\activate
この信頼されていない発行元からのソフトウェアを実行しますか?
ファイル C:〇〇\venv\Scripts\Activate.ps1 の発行元は CN=Python Software Foundation, O=Python Software Foundation, L=Beaverton, S=Oregon, C=US
であり、このシステムで信頼されていません。信頼された発行元からのスクリプトのみを実行してください。
[V] 常に実行しない(V) [D] 実行しない(D) [R] 一度だけ実行する(R) [A] 常に実行する(A) [?] ヘルプ (既定値は "D"): A
(venv) PS C:〇〇>
これで、信頼されていない発行元からの警告を解決し、問題なく仮想環境を有効化できるようになります。