python - virtualenv退出虚拟环境 - workon env




如何离开/退出/停用python virtualenv? (6)

(my_env)basant @ basant:〜/ EonTraining / my_env $停用

使用'停用'

巴桑特@巴桑特联想-E40-80:〜/ EonTraining / my_env $

去(my_env);

我使用的是virtualenv和virtualenvwrapper。 我可以使用workon命令在virtualenv之间切换。

[email protected]:~$ workon env1
(env1)[email protected]:~$ workon env2
(env2)[email protected]:~$ workon env1
(env1)[email protected]:~$ 

但是,如何退出所有虚拟机并再次运行我的真机? 现在,我必须回到过去的唯一途径

[email protected]:~$ 

是退出shell并开始一个新的。 这有点令人讨厌。 有没有一个命令“没有”,如果是的话,它是什么? 如果这样的命令不存在,我将如何去创建它?


你可以使用virtualenvwrapper来减轻你使用virtualenvwrapper的方式

安装virtualenvwrapper

pip install virtualenvwrapper

如果您使用的是标准shell,请使用oh-my-zsh打开~/.bashrc~/.zshrc 。 添加这两行:

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

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

$ workon myenv
(myenv)$

为了停用你的virtualenv:

(myenv)$ deactivate

这里是我的tutorial ,一步一步如何安装virtualenv和virtualenvwrapper


我使用基于autoenv zsh-autoenv autoenv

zsh-autoenv自动来源(已知/列入白名单) .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目录时,虚拟环境会自动退出。



通常,激活virtualenv会为您提供一个名为:

$ deactivate

这使事情恢复正常。

编辑1

我刚刚再次查看了virtualenvwrapper,的代码,是的,它也支持deactivate作为从所有virtualenvs转义的方式。

编辑2

如果您试图离开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.

$ deactivate 

如果这不起作用,请尝试

$ source deactivate

任何知道bash source作品的人都会觉得这很奇怪,但是一些关于virtualenv的包装/工作流实现为source activate的恭维/对应。 因人而异





virtualenvwrapper