PowerShell中的virtualenv?

105 投票
18 回答
198061 浏览
提问于 2025-04-15 14:00

在使用virtualenv的时候,PowerShell似乎出现了一些问题。

当我在PowerShell中尝试激活我的环境时,比如这样...

env/scripts/activate

.. 但是没有任何反应。(本来命令行提示符应该会改变,PATH环境变量也应该会更新。)

我猜问题出在PowerShell会新开一个cmd进程来运行activate.bat,这样一来,activate.bat对命令行的修改在它执行完后就失效了。

你有没有什么解决这个问题的办法?(我现在还是在用cmd.exe。)

18 个回答

47

运行这个命令:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force

然后接着运行:

./env/Scripts/activate.ps1

就这样简单

163

最新版本的virtualenv可以直接支持PowerShell

只需要确保你运行:

Scripts\activate.ps1

而不是

Scripts\activate

后者会执行 activate.bat,但这个在PowerShell上是无法工作的。

56

我之前的回答现在已经过时了。现在,只需使用 activate.ps1(而不是 activate.bat)来在PowerShell环境中激活。


原始回答:

这里有一篇文章,里面包含了一个PowerShell脚本,可以让你运行那些会持续修改环境变量的批处理文件。这个脚本会把任何环境变量的变化传回到调用它的PowerShell环境中。

撰写回答