我的使用习惯是这样的工程文件夹下,希望一条命令激活or切换虚拟环境。
在/home/appleyuchi路径下的.bashrc文件中的最后面追加以下这3句,路径自己修改好。
#####################################################################################
alias py2.7="source /home/appleyuchi/.virtualenvs/python2.7/bin/activate&&deactivate&&source /home/appleyuchi/.virtualenvs/python2.7/bin/activate"
alias py3.5="source /home/appleyuchi/.virtualenvs/python3.5/bin/activate&&deactivate&&source /home/appleyuchi/.virtualenvs/python3.5/bin/activate"
py2.7
#####################################################################################
上面第三句的意思是打开终端后就会自动进入到python2.7的虚拟环境
原理,以第一条为例进行分析。
一、如果是在终端刚打开没有激活虚拟环境的情况下:
source /home/appleyuchi/.virtualenvs/python2.7/bin/activate这个会激活虚拟环境
然后
deactivate&&source /home/appleyuchi/.virtualenvs/python2.7/bin/activate"
这个会进行反复激活。
二、如果是在终端中 已经存在虚拟环境的情况下:
那么
source /home/appleyuchi/.virtualenvs/python2.7/bin/activate"中这句是无效的。
deactivate&&source /home/appleyuchi/.virtualenvs/python2.7/bin/activate"会帮助切换虚拟环境
但是注意:由于deactivate无法针对终端已经开启、但是没有python虚拟环境的情况,所以前面的source /home/appleyuchi/.virtualenvs/python2.7/bin/activate这部分不可以删除。
也就是说,这条自定义命令的设计思想是:
针对刚打开终端的情况:
先激活、然后反激活(deactivate)、切换回原来的虚拟环境
针对终端中已经有虚拟环境的情况:
先激活(此时激活source是失效的)、切换到新的虚拟环境
综上,一条命令可以同时处理激活和切换。
用法,文中红色字体添加大~/.bashrc中的最后两行,然后关闭终端,重新开启终端:
输入py2.7,可以进入python2.7的虚拟环境或者由python3.5的环境切换到2.7的环境(该命令会自动判断当前处于哪种情况)
输入py3.5,可以进入python3.5的虚拟环境或者由python2.7的环境切换到3.5的环境(该命令会自动判断当前处于哪种情况)