我正在使用 virtualenv 和 virtualenvwrapper。我可以使用workon
命令在 virtualenv 之间切换。
me@mymachine:~$ workon env1
(env1)me@mymachine:~$ workon env2
(env2)me@mymachine:~$ workon env1
(env1)me@mymachine:~$
但是,如何退出所有虚拟机并再次使用我的真机?现在,我回到的唯一方法
me@mymachine:~$
是退出 shell 并开始一个新的。那有点烦人。是否有一个 “无所事事” 的命令,如果有的话,它是什么?如果这样的命令不存在,我将如何创建它?
通常,激活 virtualenv 会为您提供一个名为的 shell 函数:
$ deactivate
这让事情恢复正常。
我刚刚再次看了virtualenvwrapper,
的代码,是的,它也支持deactivate
作为逃避所有 virtualenvs 的方法。
如果您尝试离开Anaconda环境,则过程略有不同:运行双字命令source deactivate
因为它们使用独立脚本实现停用。
bash-4.3$ deactivate
pyenv-virtualenv: deactivate must be sourced. Run 'source deactivate' instead of 'deactivate'
bash-4.3$ source deactivate
pyenv-virtualenv: no virtualenv has been activated.
我将别名 workoff定义为workon的反义词:
alias workoff='deactivate'
容易记住:
[bobstein@host ~]$ workon django_project
(django_project)[bobstein@host ~]$ workoff
[bobstein@host ~]$
$ deactivate
如果这不起作用,请尝试
$ source deactivate
任何知道bash source
如何工作的人都会认为这很奇怪,但围绕 virtualenv 的一些包装器 / 工作流实现为source activate
的补充 / 对应。因人而异