概要
PythonでVirtualEnvをActivateしようとすると、「Activate.ps1 はデジタル署名されていません。」という旨のエラーが発生してしまいActivate出来ません。その対応に苦労したので方法をメモしておこうと思います。
因みに、調べると、PowerShellのデフォルト設定でスクリプト実行許可が無いのは有名な話らしいのです・・・
環境前提
OS:Windows10
シェル:PowerShell(一般権限)
現象
PythonでVirtualEnvをActivateしようとすると、↓のように「Activate.ps1 はデジタル署名されていません。」という旨のエラーが発生してしまいActivate出来ません。
C:\ken> .\.venv\Scripts\activate .\.venv\Scripts\activate : ファイル C:\ken\.venv\Scripts\Activate.ps1 を読み込めません。ファイル C:\ken\.venv\Scripts\Activate.ps1 はデジタル署名されていません。このスクリプトは現在のシステムでは実行できません。スクリプトの実行および実行ポリシーの設定の詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 on\.venv\Scripts\Activate.ps1 を読み込めません。ファイル C:\ken\.venv\Sc発生場所 行:1 文字:1行できません。スクリプトの実行および実行ポリシーの設定の詳細については、「about_Execution_Policies」(https://go.micro + .\.venv\Scripts\activate + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
原因
色々調べてみたところ、どうやらPowerShellスクリプトの実行ポリシーとして.ps1ファイルの実行を許していない事が原因のようです(結構そのまんまな理由)。
対処方法
そのため、↓のように実行ポリシーを変更して.ps1ファイルを実行可能にすれば良いようです。
実行ポリシーを確認
C:\ken>Get-ExecutionPolicy AllSigned
↑はすべてのスクリプトと構成ファイルが信頼された発行元によって署名されていることを要求しています
実行ポリシーをスクリプト実行許可に変更
C:\ken> Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
実行ポリシーを再確認
C:\ken> Get-ExecutionPolicy
RemoteSigned
↑実行が許可された
VirtualEnvをActivate
C:\ken> .\.venv\Scripts\activate
(.venv) PS C:\ken>
無事Activateされました
もしくは
そもそも、PowerShellを管理者権限で起動すればスクリプト実行許可は与えられているそうなので、こんな事しなくても普通に出来るらしいです。
本日はここまでで。
0 件のコメント:
コメントを投稿