创建虚拟Python环境——virtualenv

前言

由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题。

通过 =virtualenv= 这个工具,就可以构建一系列 =虚拟的Python环境= ,然后在每个环境中安装需要的软件包(配合 =pip= 使用),这一系列的环境是相互隔离的。作为一个独立的环境就不容易出现版本问题,还方便部署。

安装

1
$ sudo pip install virtualenv

virtualenv的基本使用

创建虚拟环境

1
$ virtualenv venv

为环境指定Python解释器:

1
$ virtualenv -p /usr/bin/python2.7 venv

激活虚拟环境

1
$ source venv/bin/activate

停止虚拟环境

1
$ deactivate

删除虚拟环境

直接删除目录即可.

virtualenvwrapper

为了使用virtualenv更方便,可以借助 =virtualenvwrapper=

安装virtualenvwrapper

1
$ sudo pip install virtualenvwrapper

加载virtualenvwrapper

1
$ source /usr/local/bin/virtualenvwrapper.sh

创建虚拟环境

默认创建的虚拟环境位于 =~/.virtualenvs= ,可以通过环境变量 =$WORKON_HOME= 来定制。

1
$ mkvirtualenv test2-env

创建后,会自动激活环境,注意看Shell提示符的改变:

1
(test2-env)CL-USER> test2-env$

列出所有虚拟环境

1
$ lsvirtualenv

激活虚拟环境

1
$ workon test2-env

进入虚拟环境目录

1
$ cdvirtualenv

进入虚拟环境的site-packages目录

1
$ cdsitepackages

列出site-packages目录的所有软件包

1
$ lssitepackages

停止虚拟环境

1
$ deactivate

删除虚拟环境

1
$ rmvirtualenv test2-env

重建Python环境

冻结环境

所谓 =冻结(freeze)= 环境,就是将当前环境的软件包等固定下来:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ pip freeze > requirements.txt
$ cat requirements.txt
CherryPy==3.6.0
Jinja2==2.7.3
Markdoc==0.6.6
Markdown==2.5.1
MarkupSafe==0.23
PyYAML==3.11
Pygments==2.0.1
WebOb==1.4
argparse==1.2.1
wsgiref==0.1.2

重建环境

=重建(rebuild)= 环境就是在部署的时候,在生产环境安装好对应版本的软件包,不要出现版本兼容等问题:

1
$ pip install -r requirements.txt

配合pip,可以批量安装对应版本的软件包,快速重建环境,完成部署。

后记

=virtualenv= 是一个很棒的工具,和 =pip= 都被称为神器,还可以进行功能定制,比如在创建环境后自动做一些其他事情,现在就不细究了。

资料

吴羽舒 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!