简介
首先来看一下 virtualenv 是个什么东东?
在使用Python开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。这里,就要隆重介绍 virtualenv
,一个可以帮助我们管理不同 Python
环境的绝好工具。virtualenv
可以在系统中建立多个不同并且相互不干扰的虚拟环境。另外,值得一提的是,在 virtualenv
的虚拟环境中使用 pip
安装依赖还可以绕过某些系统的权限设置,因为毕竟不需要向系统目录写入数据嘛~~
安装
首先从安装讲起,这里假设已经安装了 pip
,如果没有安装 pip
的话,请自行安装。安装完成后就可以使用pip安装virtualenv 软件
$ pip install virtualenv
ok,现在宿主机已经拥有了virtualenv虚拟环境管理器了
使用
虚拟管理器环境有了,该怎么使用呢?
比如现在我们要利用Django框架开发一个web网站,我们就把这个项目暂且叫做blog。因为我们的宿主机本身已经安装了Django1.6版本,但是我们的web网站想要使用最新的Django1.10版本开发。
假设我们把项目放在/app/local/project/blog
目录下,并且这里我们把虚拟环境直接放在工程目录下面。
So, 我们开始创建我们的一个虚拟环境吧。
$ virtualenv /app/local/project/blog
这样,虚拟环境就已经创建好了。我们可以进入项目目录下,看看到底创建了什么鬼?我们发现在项目目录中自动创建了三个目录bin、include、lib,这三个目录里面到底是什么东东呢?
- bin 包含了一些在这个虚拟环境中可用的命令,以及开启虚拟环境的脚步
activate
; - incloud 包含了虚拟环境中的头文件,以及Python的头文件
- lib 包含了一些依赖库
现在我们进入到虚拟环境中吧!怎么进去呢?一条命令即可激活!
[root@centos02 blog]$ source /app/local/project/blog/bin/activate
(blog) [root@centos02 blog]$
此时是否发现,前面多了一个(blog)
的东东。这就说明我们现在已经进入到blog虚拟环境中了,一个全新赶紧的python环境
然后我们可以在当前虚拟环境中安装我们的最新版本的Django了
(blog) [root@centos02 blog]$ pip install django
Collecting django
Downloading
[...]
Installing collected packages: django
Successfully installed django-1.10.4
(blog) [root@centos02 blog]$
搞定了。
这样再使用Django 就不会被宿主机的老版本干扰了。
完成工作了,该怎么退出这个虚拟环境回到宿主机呢,So Easy! 一条命令就能搞定!
(blog) [root@centos02 blog]$ deactivate
[root@centos02 blog]$
看,前面的(blog)
消失了,说明我们已经回到了宿主机!
我们每次要进入到指定虚拟环境,要必须知道虚拟环境所在的路径,才能知道虚拟环境入口!此时肯定会有人产生疑问了,假如我创建了多个虚拟环境,时间一长,忘记了每个虚拟环境的路径在哪里,那岂不是。。。
没错,如果忘记了虚拟环境目录,那就真的是找不到入口了。
聪明的人总会找到聪明的办法。我把所有的虚拟环境都放在一个目录中中,并且按照规则命名,那就肯定不会找不到喽!聪明,下面就要引入virtualenv的管理工具virtualenvwrapper
virtualenvwrapper将更便捷的管理虚拟环境,具体分析,请看下回
补充
如要需要删除虚拟环境,直接删除虚拟目录中的bin
、incloud
和lib
这三个目录就好了。
总结
上面啰嗦了这么多,其实就几条明天搞定的事,来总结一下吧!
安装virtualenv
$ pip install virtualenv
创建虚拟环境
$ virtualenv /app/local/project/blog
进入虚拟环境
$ source /app/local/project/blog/bin/activate
退出虚拟环境
$ deactivate
基本使用就这么多了,So Easy ~