最新版本的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
该如何解决?有任何想法吗?谢谢 :)))
请注意,我不想手动调整每个自动生成的activate.ps1
文件。
答案 0 :(得分:6)
让我们看看该错误消息:
You must 'source' this script: PS> . .\ENV\Scripts\activate
嗯...-PS>
可能只是提示,这给了我们:
. .\ENV\Scripts\activate
# ^
# |
# Check out this guy
那是路径前面的孤独.
,即powershell中的点源运算符。
根据the documentation,它是:
在当前范围内运行脚本,以便将脚本创建的所有函数,别名和变量添加到当前范围。
我没有看过virtualenv
,但是我想它将要定义多个变量,并确保在脚本运行后这些变量仍然存在,因此需要在当前脚本中运行范围。
这是您必须运行以解决的 literal 命令:
. .\ENV\Scripts\activate
答案 1 :(得分:4)
我也遇到了这个问题。为了解决这个问题,我创建了一个新的虚拟环境,如下所示:
python -m venv directory-name
要激活:
Scripts>./activate
现在一切正常...
答案 2 :(得分:4)
Screenshot attached for reference. 我刚刚遇到了同样的问题,但是我做了以下事情:
创建一个新的虚拟环境;
python -m venv directory
导航到新创建的目录;
cd directory
激活虚拟环境。
.\Scripts\activate
这解决了我的问题。希望对您有帮助...
答案 3 :(得分:0)
我也面临同样的问题,使用此方法解决了这个问题:
创建虚拟环境,方法是: virtualenv环境
创建虚拟环境后
我通过使用激活了它:
source environment/bin/activate
它激活了我的虚拟环境