python独立运行环境

在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.x。所有第三方的包都会被pip安装到Python3的site-packages目录下。

如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualvenv或venv就是用来为一个应用创建一套“隔离”的Python运行环境。

完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。

一、virtualvenv

virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

pip install virtualenv

cd my_project_dir
virtualenv venv #venv为虚拟环境目录名,自定义
virtualenv -p /usr/bin/python2.7 venv # -p参数指定Python解释器程序路径

source venv/bin/activate # 激活虚拟环境
venv/bin/deactivate # 回到系统默认的Python解释器

pip install pylint #安装python静态检查器

rm -rf venv # 删除虚拟环境

二、venv

$ mkdir proj101env
$ cd proj101env/
proj101env$

proj101env$ python3 -m venv .
proj101env$ ls
bin  include  lib  pyvenv.cfg

proj101env$ cd bin
bin$ source activate
(proj101env) bin$

(proj101env) bin$ deactivate
bin$
 
 命令python3 -m venv <目录>就可以创建一个独立的Python运行环境。观察bin目录的内容,里面有python3pip3等可执行文件,实际上是链接到Python系统目录的软链接。

注意到命令提示符变了,有个(proj101env)前缀,表示当前环境是一个名为proj101env的Python环境。

venv环境下,用pip安装的包都被安装到proj101env这个环境下,具体目录是proj101env/lib/python3.x/site-packages,因此,系统Python环境不受任何影响。也就是说,proj101env环境是专门针对project101这个应用创建的。

venv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python链接或复制一份到venv的环境,用命令source activate进入一个venv环境时,venv会修改相关环境变量,让命令pythonpip均指向当前的venv环境。

如果不再使用某个venv,例如proj101env,删除它也很简单。首先确认该venv没有处于“激活”状态,然后直接把整个目录proj101env删掉就行。

三、vscode配置

vscode左下方有Python解释器版本,直接点击后出现“Select Interpreter”选择合适python解释器即可。

 

参考:

1、廖雪峰python教程venv

posted @ 2016-10-30 07:48  yuxi_o  阅读(354)  评论(0)    收藏  举报