问题
python v.3.7.4 上的最新版本 virtualenv (16.7.2) 为“activate.ps1”脚本添加了 4 行,在 Windows10 powerhsell 上运行时会出现错误:You must 'source' this script: PS> . .\ENV\Scripts\activate
我该如何解决? (请注意,我已阅读并完成了其他论坛问题中提到的所有内容以及与 windows 和 powershell 相关的 virtualenv 手册。)
我采取的步骤/尝试过的事情:**
我已将执行策略设置为 RemoteSigned(如其他论坛中的建议):
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
当我想激活 virtualenv 时,我运行.\ENV\Scripts\activate
问题出在哪里
问题出在创建新虚拟环境时由 virtualenv 自动生成的 activate.ps1 脚本的第 3 行到第 6 行:
if (@($null,"Internal") -notcontains $myinvocation.commandorigin) {
Write-Host -Foreground red "You must 'source' this script: PS> . $($myinvocation.invocationname)"
exit 33
}
看起来$myinvocation.commandorigin
被设定为Runspace代替Internal
Question
我该如何解决?有任何想法吗?谢谢 :)))
请注意,我不想手动调整每个自动生成activate.ps1
file.
让我们看一下该错误消息:
You must 'source' this script:
PS> . .\ENV\Scripts\activate
嗯嗯...-PS>
可能只是提示,这给我们留下了这样的信息:
. .\ENV\Scripts\activate
# ^
# |
# Check out this guy
那,孤独的.
前面的路,就是点源运算符在 powershell 中。
根据文档, it:
在当前作用域中运行脚本,以便将脚本创建的任何函数、别名和变量添加到当前作用域。
我还没看过virtualenv
,但我假设它需要定义许多变量,并确保这些变量在脚本运行后仍然存在,它需要在当前范围内运行。
所以这就是literal您必须运行命令才能修复它:
. .\ENV\Scripts\activate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)