最近在看python书,在搭建python骨架,创建虚拟环境的地方卡了一天,各种问题,太惨了哈哈哈哈 相信很多人都遇到了这个问题
问题
无法将“..venvs\lpthw\Scripts\activate”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后重试。所在位置 行:1 字符: 32
venvs\lpthw\Scripts\activate <<<<
+ CategoryInfo : ObjectNotFound: (.\.venvs\lpthw\Scripts\activate:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
如图:
问题原因
电脑上启动 Window Powershell 时,默认情况下,其执行策略可能是Restricted。
Restricted策略是不允许任何脚本执行的。
如要查询当前执行策略 其命令
get-executionpolicy //查看当前执行策略
解决问题方案
更改执行策略 remotesigned
在Powershell中键入(最好用管理员权限执行)
set-executionpolicy remotesigned //修改执行策略为remotesigned
直接默认yes就可修改成功
Powershell执行策略
Restricted: 脚本不能运行(默认设置)
RemoteSigned: 在本地创建的脚本可以运行,网上下载的脚本无法运行(拥有数字证书签名例外)
AllSigned: 仅当脚本由受信任的发布者签名时才能运行
Unrestricted: 允许所有脚本运行
Set-ExecutionPolicy <Policy name> 设置执行策略
补充
在键入修改执行策略时,可能会产生以下报错
请用管理员权限打开
Set-ExecutionPolicy : 对注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell”的
访问被拒绝。
所在位置 行:1 字符: 20
+ set-executionpolicy <<<< remotesigned
+ CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyComma
nd