Created 2019年3月31日12:32
Updated 2019年3月31日12:33
Categories
Windows
Windowsでvenvを作り、PowershellでActivate.ps1を実行した際に以下のエラーが発生しました。
.\venv\Scripts\Activate.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル path\to\venv\Scripts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_P
olicies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .\venv\Scripts\Activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Powershellでスクリプトを実行することはセキュリティ上の懸念からデフォルトでは制限されているためエラーが発生するようです。
以下コマンドを実行することで解決しました。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
ただし、このコマンドは現在のユーザーにすべてのスクリプトの実行を許可しているため、セキュリティ的には少し心配です。
かといってActivate.ps1はデジタル署名されていないので、ほかのオプションだと実行できません。
もう少し安全なポリシーがあれば使いたいのですが、とりあえずUnrestrictedを設定することにしました。