本文首发于微信公众号:Python库
朋友们在使用Python的时候可能会遇到这样的情况:公司里使用的版本是2,但自己却想体验Python3的特性,因此电脑上就需要安装两种不同的Python开发环境;或者是想使用的两种包相互冲突;又或者是自己有整理的习惯,希望web开发的环境和数据处理的环境能分别管理。。。。。。
这时候你就需要virtualenv这个工具的协助了
0x00 原理
virtualenv的原理很简单,它使用目录来管理不同的虚拟环境。换句话说,当建立一个新的环境ENV时,它会在当前目录新建ENV目录,并把系统中的Python安装目录拷贝到ENV下。当激活ENV环境时,便修改/usr/bin下的Python链接文件,使之链接到ENV中的程序。注销当前环境时,只要修改链接文件,使之复原即可。
0x01 安装
virtualenv的安装使用pip就行了,如果想更方便管理,也可安装virtualenvwrapper
$ pip install virtualenv
$ pip install virtualenvwrapper
0x02 使用virtualenv管理虚拟环境
创建虚拟环境时,在终端中输入virtualenv命令
$ virtualenv [虚拟环境名称,如:ENV]
运行后就可在当前目录找到ENV目录,这就是创建的虚拟环境了
- Python2还是Python3?
按以上方法创建的虚拟环境中,Python的版本和系统中的相同,如果当前使用的是Python3,而您又想使用Python2的话,需要加上-p参数
$ virtualenv -p python2 [虚拟环境名称]
- 包管理
如上所述,建立虚拟环境时,工具会将系统中的Python目录复制到环境中,自然也就包含所有的已安装第三方包,如果不想要某些包跟着复制过来,就需要使用--no-site-packages命令了
$ virtualenv --no-site-packages [虚拟环境名称]
- 虚拟环境操作
在使用虚拟环境前需要先激活,假设已在当前目录建立了ENV
$ cd ENV
$ source ./bin/activate
这是终端输入行前面会多一个(ENV),这就表明现在使用的是ENV环境,此时使用pip安装的所有包都只在ENV中,不会对外界产生干扰。如果想退出当前环境,终端中运行deactivate命令即可。
倘若您确认已经不需要虚拟环境ENV了,删除ENV目录就能达到目的
0x03 使用virtualenvwrapper简化操作
virtualenvwrapper默认安装在/usr/local/bin目录下,安装文件为virtualenvwrapper.sh,每次使用前都需要运行这个文件!为了避免手动操作的麻烦,最好让它开机运行。
首先建立一个统一的文件夹来存放虚拟环境
$ mkdir $HOME/.virtualenvs
然后对~/.bashrc文件进行设置,它在当前用户登陆后运行
添加行:export WORKON_HOME=$HOME/.virtualenvs
添加行:source /usr/local/bin/virtualenvwrapper.sh
修改后运行
$ source ~/.bashrc
创建虚拟环境
$ mkvirtualenv [虚拟环境名称]
启动、切换或列出虚拟环境
$ workon [虚拟环境名称]
不输入虚拟环境名称,则列出所有已建立的
注销当前环境
$ deactivate [当前虚拟环境名称]
删除虚拟环境前须保证不处于激活状态
$rmvirtualenv [虚拟环境名称]
0x04 写了这么多,点个赞鼓励一下呗
谢谢!
网友评论