1.virtualenv简介
VirtualEnv用于在一台机器上创建多个独立的python运行环境,类似于一个个沙盒环境。
作用:
隔离项目之间的第三方库依赖,如A项目依赖xxx1.1,B项目依赖xxx1.2。
为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不需要在服务器上再折腾一翻。
尝试新的第三方库,而不用担心污染系统环境。
在沒有权限的情況下安装新组件。
virtualenv只能隔离第三方依赖库,不能在多个python版本之间切换。pythonbrew可以满足这个需求。
2.安装
1
|
sudo
easy_install virtualenv
|
3.创建并启动新的运行环境
1
2
|
virtualenv env_name
source
env_path
/bin/activate
|
如下面的例子:
1
2
3
4
5
6
7
8
9
|
alexzhou@alexzhou:~
/python_workspace
$ virtualenv --no-site-packages
test
-flask
The --no-site-packages flag is deprecated; it is now the default behavior.
New python executable
in
test
-flask
/bin/python
Installing setuptools............
done
.
Installing pip...............
done
.
|
上面的命令会创建一个test-flask目录,在test-flask/bin目录下的python解释器,它会优先使用test-flask/lib/pythonX.X/site-packages目录下的库。同时新建立的 virtualenv 會自動安裝好 easy_install 和 pip
ps:參數 –no-site-packages表示不查找系統的 site-packages目录下的库,而只查找test-flask/lib/pythonX.X/site-packages目录下的库,现在已经是默认的设置了。
启用指定的沙盒,其实只是把当前沙盒下的bin目录(/home/alexzhou/python_workspace/test-flask/bin)添加到环境变量PATH中,此时控制台的前缀变成了 (test-flask)$,提示你已经进入该沙盒环境。
1
2
|
alexzhou@alexzhou:~
/python_workspace/test-flask
$
source
.
/bin/activate
(
test
-flask)alexzhou@alexzhou:~
/python_workspace/test-flask
$
|
退出沙盒环境
1
|
(
test
-flask)alexzhou@alexzhou:~
/python_workspace/test-flask
$ deactivate
|
在沙盒中安装第三方依赖库。ps:每次安装第三方库前,需进入沙盒环境。
1
|
(
test
-flask)alexzhou@alexzhou:~
/python_workspace/test-flask
$ pip
install
Flask
|