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目录的内容,里面有python3、pip3等可执行文件,实际上是链接到Python系统目录的软链接。注意到命令提示符变了,有个(proj101env)前缀,表示当前环境是一个名为proj101env的Python环境。
在venv环境下,用pip安装的包都被安装到proj101env这个环境下,具体目录是proj101env/lib/python3.x/site-packages,因此,系统Python环境不受任何影响。也就是说,proj101env环境是专门针对project101这个应用创建的。
venv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python链接或复制一份到venv的环境,用命令source activate进入一个venv环境时,venv会修改相关环境变量,让命令python和pip均指向当前的venv环境。
如果不再使用某个venv,例如proj101env,删除它也很简单。首先确认该venv没有处于“激活”状态,然后直接把整个目录proj101env删掉就行。
三、vscode配置
vscode左下方有Python解释器版本,直接点击后出现“Select Interpreter”选择合适python解释器即可。
参考:
浙公网安备 33010602011771号