Python virtualenv v16.7.2 powershell激活脚本:“0”;你必须';来源';此脚本:PS>\ENV\Scripts\activate";错误 问题
python v.3.7.4上最新版本的virtualenv(16.7.2)为“activate.ps1”脚本增加了4行代码,在Windows10 powerhsell上运行时会出现错误:Python virtualenv v16.7.2 powershell激活脚本:“0”;你必须';来源';此脚本:PS>\ENV\Scripts\activate";错误 问题,python,powershell,windows-10,virtualenv,Python,Powershell,Windows 10,Virtualenv,python v.3.7.4上最新版本的virtualenv(16.7.2)为“activate.ps1”脚本增加了4行代码,在Windows10 powerhsell上运行时会出现错误:您必须“source”此脚本:PS>\环境\脚本\激活 我该如何解决这个问题?(请注意,我已经阅读并完成了其他论坛问题以及与windows和powershell相关的virtualenv手册中提到的所有内容。) 我采取的步骤/尝试过的事情:** 我已将执行策略设置为RemoteSigned(在其他论坛中建议):
您必须“source”此脚本:PS>\环境\脚本\激活
我该如何解决这个问题?(请注意,我已经阅读并完成了其他论坛问题以及与windows和powershell相关的virtualenv手册中提到的所有内容。)
我采取的步骤/尝试过的事情:**
我已将执行策略设置为RemoteSigned(在其他论坛中建议):
当我想激活virtualenv时,我会运行\ENV\Scripts\activate
问题在哪里
问题在于创建新虚拟环境时VirtualEnvironment自动生成的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
被设置为运行空间而不是内部
问题:
我该如何解决这个问题?有什么想法吗?谢谢))
请注意,我不想手动调整每个auto gen
activate.ps1文件。我也遇到了这个问题。为了解决这个问题,我创建了一个新的虚拟环境,如下所示:
python -m venv directory-name
要激活:
Scripts>./activate
现在它工作得很好…
我刚刚遇到了同样的问题,但我做了以下工作:
创建新的虚拟环境
python-mvenv目录
导航到新创建的目录
cd目录
激活虚拟环境
\Scripts\activate
这解决了我的问题。我希望它能有所帮助……让我们看看错误消息:
您必须“源”此脚本:
PS>\环境\脚本\激活
嗯…-PS>
可能只是一个提示,它留给我们的是:
. .\ENV\Scripts\activate
# ^
# |
# Check out this guy
路径前面的孤零零的
,即powershell中的点源操作符
据它称:
在当前作用域中运行脚本,以便将脚本创建的任何函数、别名和变量添加到当前作用域中
我还没有看过virtualenv
,但是我假设它需要定义一些变量,并且为了确保这些变量在脚本运行后保持不变,它需要在当前范围内运行
因此,您必须运行以下文字命令来修复它:
. .\ENV\Scripts\activate
我也面临同样的问题,通过使用以下方法解决了它:
通过以下方式创建虚拟环境:
虚拟环境
创建虚拟环境后
我通过以下方式激活了它:
source environment/bin/activate
它激活了我的虚拟环境,正如消息所说-dot source脚本:\ENV\Scripts\activate
(注意前面额外的
)哇!成功了!我不熟悉PS,所以我不知道为什么它会起作用?(因此我从来没有注意到额外的点哈哈)也请添加这一点作为答案,以便我可以选择它作为解决方案:)@ffarhour当您像您那样运行脚本时,activate
中发生的事情仍在脚本的范围内。只有当您(通过
或源代码
)将更改应用于脚本范围之外(即在shell环境中)。这通常适用于任何脚本,它适用于各种shell,如PS、bash、zsh等,thanks@MathiasR.Jessen请将其作为解决方案发布,以便我能+1它。我有过类似的情况;必须删除先前安装的venv,该版本无法通过“您必须‘源’此脚本:”消息。一旦我用python-m venv[dir name]重新安装,它就工作了。谢谢
source environment/bin/activate