繁体   English   中英

'virtualenv' 不会在 Windows 上激活

[英]'virtualenv' won't activate on Windows

本质上,我似乎无法激活我创建的 virtualenv 环境。

我在 Windows PowerShell 内部使用

scripts\activate

但我收到一条错误消息:

“无法加载,因为此系统上禁用了脚本的执行”。

这可能是因为我的计算机上没有管理员权限吗?

根据 Microsoft 技术支持,这可能是执行策略设置的问题。 要修复它,您应该尝试在 PowerShell 窗口中执行Set-ExecutionPolicy Unrestricted -Scope Process (如Set-ExecutionPolicy Unrestricted -Scope Process的评论部分所述)。 这将允许在当前 PowerShell 会话中运行 virtualenv。

还有另一种更不安全的方法,但 MS 技术支持推荐。 这种方法是使用Set-ExecutionPolicy Unrestricted -Force (它会释放力量来搞砸你的系统)。 但是,在使用这种不安全的方式之前,请务必使用get-ExecutionPolicy检查您当前的 ExecutionPolicy 设置。 然后,当您完成后,您可以使用Set-ExecutionPolicy %the value the get-ExecutionPolicy command gave you% -Force来恢复到此 ExecutionPolicy Set-ExecutionPolicy %the value the get-ExecutionPolicy command gave you% -Force

在 PowerShell 中使用

Scripts\activate.ps1

而不是activate.bat不再在 PowerShell 中工作。

也只需键入即可停用它

deactivate

在命令提示符下。

在 Windows 上,以管理员身份打开 Windows PowerShell

在此处输入图片说明

Set-ExecutionPolicy Unrestricted -Force

创建虚拟环境:

pip install virtualenv
virtualenv foo
cd .\foo
.\Scripts\activate

在此处输入图片说明

设置流程范围的执行策略。 在 Yes [y] 之后,输入脚本/激活:

在此处输入图片说明

以管理员身份打开另一个 PowerShell 窗口,然后键入:

set-executionpolicy remotesigned

然后按Y然后Enter

现在关闭这个 PowerShell 窗口并返回到您正在使用的 shell。 这将解决问题。

我在这里找到的另一个快速解决方案(它仅适用于 Windows PowerShell)是这样的:

第一次运行

Scripts\cmd

然后运行

Scripts\activate.bat

在这个位置,你的Virtualenv被激活。 现在,如果您停用它并希望稍后在 PowerShell 的同一会话中再次激活它,您只需要运行:

Scripts\activate

以后就不需要再使用cmdactivate.bat命令了。

请按照以下步骤操作。

步骤 1. 使用 Windows PowerShell 作为管理员。 (非常重要)并 cd 进入项目文件夹。 跑步

virtual env

步骤 2. 如果您有activate.bat文件,请检查脚本文件夹

\env\Scripts\activate.bat # It has to be there.

第 3 步。 如果不是,请确保您有 Internet 连接并再次运行

virtual env

步骤 4. 如果脚本文件夹中有activate.bat文件,请继续。

步骤 5. 在你的 shell 中运行这个:

Set-ExecutionPolicy Unrestricted -Force

步骤 6. 要在 Windows 上激活 virtualenv,激活脚本位于 Scripts 文件夹中:

env\Scripts\activate.bat

步骤 7. 检查每行开头的 (env)。 这表明您处于虚拟环境中。

步骤 8. 要在您第二次返回项目时重新激活,请运行:

.\\env\Scripts\activate

要仅在 Windows PowerShell 中安装虚拟环境,但要激活,您需要以管理员身份运行 Windows PowerShell

  1. pip install virtualenv
  2. virtualenv %Name of virtual environment%

现在安装它以激活它。 以管理员身份运行 PowerShell

  1. Set-ExecutionPolicy Unrestricted -Force
  2. .\\env\\Scripts\\activate

停用环境

  1. .\\env\\Scripts\\deactivate

如需更多帮助,请访问官方页面: https : //pypi.org/project/virtualenv/1.8.2/

对于我在 Windows 10 64 位上:

  • 以管理员身份打开cmd
  • powershell
  • 类型Set-ExecutionPolicy Unrestricted -Force

瞧,重新打开 Visual Studio Code 并启动 pythoninnngg。

在 Windows 中,您应该在 cmd 中通过以下命令激活虚拟环境

E:\\your_environment\\Scripts> activate.bat

如果环境被激活,那么它会显示您的环境名称,并用括号括起来,如下所示:

(your_environment) E:\\your_environment\\Scripts>

我们也可以通过检查where.exe来确保它会按照层次结构的顺序列出我们的活动 Python 环境

 (your_environment) E:\your_environment\Scripts>where.exe python

 E:\your_environment\Scripts\python.exe

 C:\Python27\python.exe

如果您需要停用,请执行以下操作:

(your_environment) E:\\your_environment\\Scripts>deactivate.bat

这对我有用:

您可以简单地打开一个普通的(您不需要提升访问权限)cmd 或 PowerShell 会话(我在 Visual Studio Code 中使用嵌入式 PowerShell 终端)并从脚本文件所在的文件夹中键入以下内容,例如: .venv\\Scripts\\Activate.ps1

powershell.exe -executionpolicy unrestricted -command .\Activate.ps1 -Scope CurrentUser

然后您可以在此之后运行activate命令。

注意:这将只允许该特定脚本运行,并且只能由您的登录用户运行。

如果您不想像我一样在 Windows 上更改计算机的执行策略,您可以使用 Windows 命令提示符而不是 Windows PowerShell,只需运行

`Scripts\activate`

激活您的环境。

如果机器是 64 位,以管理员身份打开 PowerShell 的x86实例并检查(设置)执行策略。

试试这个

Set-ExecutionPolicy Unrestricted

要么

Set-ExecutionPolicy Unrestricted -Force

根据此处找到的答案,我为此创建了一个带有屏幕截图的简短教程。

  • 蟒蛇 3.7
  • 视窗 10 64 位
  • 电源外壳

我希望它可以帮助: 如何在 Windows 10 上设置 Python 3 虚拟环境

删除您创建的那个 venv 的目录。 并使用以下命令创建一个新的:

python -m venv myvenv

然后查看 activate 命令是否有效。

C:\path> Set-ExecutionPolicy - Scope CurrentUser

cmdlet Set-ExecutionPolicy 在命令管道位置 1 提供以下参数的值: ExecutionPolicy:无限制

C:\path> Scripts\activate.ps1

(新环境)

C:\path> deactivate

C:\path> 

奏效了

在 Windows PowerShell 中,ExecutionPolicy 默认设置为“受限”。 这不允许脚本在 PowerShell 中运行。

我们只能在 ExecutionPolicy 从 'Restricted' 设置为 'RemoteSensing' 时运行脚本。您可以按照视频PowerShell 08 - 更改执行策略,以便您可以运行脚本来执行此操作!

完成上述步骤后,您可以直接输入“Scrits/activate”(在您要激活的虚拟环境目录下)来激活您要激活的虚拟环境!

例子

如果您已使用pipenv创建虚拟环境,则应在 Visual Studio Code 终端中执行任何命令之前运行pipenv shell

以下步骤正在工作 -

  1. 在环境变量中设置 python 路径,如 C:\\Program Files\\Python310\\Scripts\\
  2. 以管理员模式打开 PowerShell,然后执行以下命令 -
    Set-ExecutionPolicy Unrestricted -Force
  3. 关闭 PowerShell 并在管理员模式下 repoen
  4. 执行以下命令 -
    venv\\脚本\\激活

我遇到了同样的问题,问题是

可能的原因是venv在 powercell 上没有“以管理员身份运行”时无法运行您可以在命令提示符而不是 powercell 上运行venv\Scripts\activate

这个命令对我有用:-

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

在你的 PowerShell 上运行这个我认为它的工作

搜索 PowerShell 右键单击 Windows PowerShell 并以管理员身份运行。

输入以下命令并按回车键。

Set-ExecutionPolicy Unrestricted -Force

重新启动系统并尝试激活 python 虚拟环境。

如果您的虚拟环境已成功创建,那么它应该可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM