在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。
如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
首先安装
$ pip3 install virtualenv
然后创建工程目录
$ mkdir myproject
$ cd myproject/
创建运行环境
Mac:myproject michael$ virtualenv --no-site-packages venv
Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.
启动运行环境
Mac:myproject michael$ source venv/bin/activate
(venv)Mac:myproject michael$
现在所有的装都不会污染全局了
感觉pip安装相当于node的 --global安装
virtualenv相当于该工程下的
退出环境
(venv)Mac:myproject michael$ deactivate
Mac:myproject michael$
非virtualenv环境输入pip freeze
(查看已安装的包)和virtualenv环境输入pip freeze
就会发现差别了
在python3中可以用自带的env
Python3 -m venv venv
然后激活方式也是一样的source ./venv/bin/activate
网友评论