在使用PowerShell时,使用virtualenv似乎会出现问题。
当我尝试在PowerShell中激活我的环境时,例如...
env/scripts/activate
.. 什么都没有发生。(应该已经改变了 shell 提示符和 PATH 环境变量。)
我猜问题在于 PowerShell 为运行 activate.bat 而产生了一个新的 cmd 进程,因此在 activate.bat 完成后对 shell 所做的更改失效。
你有任何解决办法吗?(目前我还在使用 cmd.exe)
在使用PowerShell时,使用virtualenv似乎会出现问题。
当我尝试在PowerShell中激活我的环境时,例如...
env/scripts/activate
.. 什么都没有发生。(应该已经改变了 shell 提示符和 PATH 环境变量。)
我猜问题在于 PowerShell 为运行 activate.bat 而产生了一个新的 cmd 进程,因此在 activate.bat 完成后对 shell 所做的更改失效。
你有任何解决办法吗?(目前我还在使用 cmd.exe)
最新版本的virtualenv支持PowerShell。
只需确保运行:
Scripts\activate.ps1
取代
Scripts\activate
后者将执行activate.bat
,但在PowerShell上无法正常工作。
我的原始回答已经过时了。现在,只需使用activate.ps1
(而不是activate.bat
)来在Powershell环境中激活即可。
原始回答:
这里有一篇文章,其中包含一个Powershell脚本,允许您运行持续修改其环境变量的批处理文件。该脚本会将任何环境变量更改传播回调用Powershell环境。
./Activate.ps1
- Quitiwebvenv\Scripts\Activate.ps1
是我在 Powershell 中需要使用的。 - undefined运行此命令:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
随后是:
./env/Scripts/activate.ps1
就是这样
python -m venv venv
来构建虚拟环境,那么脚本的名称将是 Activate.ps1
。 - Mohammad Saad一个快速的解决方法是调用cmd,然后在cmd会话中运行你的activate.bat。例如:
PS C:\my_cool_env\Scripts> cmd
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\my_cool_env\Scripts>activate.bat
(my_cool_env) C:\my_cool_env\Scripts>
在您的虚拟环境文件夹的Scripts目录中,有几个可以使用的激活脚本,具体取决于您在执行命令的位置。如果您正在尝试从Windows PowerShell激活虚拟环境,请尝试使用以下命令:
. .\env\Scripts\activate.ps1
如果您收到有关禁用激活脚本的错误消息,则首先需要在系统上调用一个执行策略更改。这需要管理员权限。
操作步骤如下:
1)右键单击PowerShell应用程序,选择以管理员身份运行
2)运行以下命令:Set-ExecutionPolicy Unrestricted
3)重新运行激活命令:. .\env\Scripts\activate.ps1
尝试这个命令:. .\env\Scripts\activate.ps1
注意点和空格。
Windows用户
在Powershell中:
set-executionpolicy remotesigned
最后,运行
your_virtualenv_name\Scripts\activate.ps1
与其
your_virtualenv_name\Scripts\activate.bat
在命令行窗口(CMD)中,只需运行:
your_virtualenv_name\Scripts\activate.bat
无法加载env\Scripts\Activate.ps1,因为此系统禁用了脚本执行。
可以使用Set-Execution Policy命令允许当前用户运行脚本,如下所示。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
之后运行...
env/Scripts/Activate.ps1
. ./activate
set-executionpolicy RemoteSigned
命令(我的默认值为Restricted
)。文档链接 - Alex L./Activate.ps1
,否则对我来说无法工作。 - Quitiwebset-executionpolicy RemoteSigned -Scope CurrentUser
而不是Alex L提供的命令。 - micsthepick