我正在使用virtualenv和virtualvwrapper。我可以使用workon命令在virtualenv之间切换。

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

如何退出所有虚拟环境并再次使用系统环境?现在,我唯一能回到me@mymachine:~$是退出shell并开始新的shell。这有点烦人。是否有命令处理“无”,如果有,是什么?如果不存在这样的命令,我将如何创建它?


当前回答

您可以使用virtualvwrapper来简化使用virtualenv的方式。

安装virtualvwrapper:

pip install virtualenvwrapper

如果使用的是标准shell,请打开~/.bashrc或~/.zshrc(如果使用Oh My Zsh)。添加以下两行:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

要激活现有virtualenv,请使用命令workon:

$ workon myenv
(myenv)$

要停用virtualenv:

(myenv)$ deactivate

这是我的教程,一步一步介绍如何安装virtualenv和virtualvwrapper。

其他回答

我定义了一个别名workoff,与workon相反:

alias workoff='deactivate'

很容易记住:

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

我使用基于autoenv的zsh autoenv。

zsh autoenv自动sources(已知/白名单).autoenv.zsh文件,通常用于项目根目录。它处理“进入”和“离开”事件,嵌套和隐藏变量(覆盖和恢复)。

下面是一个示例:

; cd dtree 
Switching to virtual environment: Development tree utiles
;dtree(feature/task24|✓); cat .autoenv.zsh       
# Autoenv.
echo -n "Switching to virtual environment: "
printf "\e[38;5;93m%s\e[0m\n" "Development tree utiles"
workon dtree
# eof
dtree(feature/task24|✓); cat .autoenv_leave.zsh 
deactivate

因此,当我离开dtree目录时,虚拟环境将自动退出。

“开发树实用程序”只是一个名字……没有隐藏的意思是链接到这里的光明会。

您可以使用virtualvwrapper来简化使用virtualenv的方式。

安装virtualvwrapper:

pip install virtualenvwrapper

如果使用的是标准shell,请打开~/.bashrc或~/.zshrc(如果使用Oh My Zsh)。添加以下两行:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

要激活现有virtualenv,请使用命令workon:

$ workon myenv
(myenv)$

要停用virtualenv:

(myenv)$ deactivate

这是我的教程,一步一步介绍如何安装virtualenv和virtualvwrapper。

在我的情况下,我能够使用env-name\scripts\activate激活虚拟环境,并使用deactivate停用它。然而,在我的windows PC上运行更新后,停用不再被识别为内部或外部命令。从那一刻起,我使用的是env-name\scripts\deactivate,这解决了问题。

Use:

$ deactivate 

如果这不起作用,请尝试

$ source deactivate

任何了解Bash源代码工作原理的人都会认为这很奇怪,但围绕virtualenv的一些包装器/工作流将其实现为源代码激活的补充/对应。您的里程数可能有所不同。