2020年11月20日金曜日

「.ps1はデジタル署名されていません。このスクリプトは現在のシステムでは実行できません。」がPythonでVirtualEnvした時に発生した対応メモ

概要

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 件のコメント:

コメントを投稿

FX自動トレード_2021年6月実績

      概要 2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。 2021年6月結果 2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。 今月もボラが全く出ず。利益率の連続過去最低記録更新は免...