如何退出/关闭/停用Python虚拟环境

2581 投票
16 回答
2366760 浏览
提问于 2025-04-15 12:13

我正在使用virtualenv和virtualenvwrapper。我可以通过workon命令在不同的虚拟环境之间切换,操作起来很顺利。

me@mymachine:~$ workon env1
(env1)me@mymachine:~$ workon env2
(env2)me@mymachine:~$ workon env1
(env1)me@mymachine:~$ 

那么,如何退出所有的虚拟环境,回到我的系统环境呢?现在,我唯一能回到me@mymachine:~$的方法就是退出当前的命令行,然后重新打开一个新的。这有点麻烦。有没有什么命令可以让我“什么都不做”,如果有的话,那是什么?如果没有这样的命令,我该怎么去创建一个呢?

16 个回答

69

我定义了一个叫做 workoff别名,它的意思是和 workon 相反:

alias workoff='deactivate'

这个别名很容易记住:

[bobstein@host ~]$ workon django_project
(django_project)[bobstein@host ~]$ workoff
[bobstein@host ~]$
144

使用:

$ deactivate 

如果这样不行,可以试试

$ source deactivate

了解 Bash 中的 source 是怎么回事的人可能会觉得这很奇怪,但有些关于虚拟环境的工具或流程把它当作 source activate 的补充或对应使用。具体效果可能因人而异。

4128

通常,激活一个虚拟环境会给你一个名为:

$ deactivate

的命令,这个命令可以让你恢复到正常状态。

我刚刚又仔细看了一下virtualenvwrapper的代码,没错,它也支持deactivate这个命令,用来退出所有的虚拟环境。

如果你想离开一个Anaconda环境,使用的命令会根据你的conda版本而不同。最近的版本(比如4.6)会直接在你的命令行中安装一个conda命令,这种情况下你可以运行:

conda deactivate

而旧版本的conda则是通过一个独立的脚本来实现退出的:

source deactivate

撰写回答