首先,咱們用pip安裝virtualenv:
1、使用與啓動:
$ pip3 install virtualenv
而後,假定咱們要開發一個新的項目,須要一套獨立的Python運行環境,能夠這麼作:python
第一步,建立目錄:app
Mac:~ michael$ mkdir myproject
Mac:~ michael$ cd myproject/
Mac:myproject michael$
第二步,建立一個獨立的Python運行環境,命名爲venv:ip
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.
命令virtualenv就能夠建立一個獨立的Python運行環境,咱們還加上了參數--no-site-packages,這樣,已經安裝到系統Python環境中的全部第三方包都不會複製過來,這樣,咱們就獲得了一個不帶任何第三方包的「乾淨」的Python運行環境。開發
新建的Python環境被放到當前目錄下的venv目錄。有了venv這個Python環境,能夠用source進入該環境:it
Mac:myproject michael$ source venv/bin/activate
(venv)Mac:myproject michael$
注意到命令提示符變了,有個(venv)前綴,表示當前環境是一個名爲venv的Python環境。pip
下面正常安裝各類第三方包,並運行python命令:io
(venv)Mac:myproject michael$ pip install jinja2
...
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv)Mac:myproject michael$ python myapp.py
...
在venv環境下,用pip安裝的包都被安裝到venv這個環境下,系統Python環境不受任何影響。也就是說,venv環境是專門針對myproject這個應用建立的。table
2、退出當前的venv環境,使用deactivate命令:jinja2
(venv)Mac:myproject michael$ deactivate
Mac:myproject michael$
此時就回到了正常的環境,如今pip或python均是在系統Python環境下執行。變量
徹底能夠針對每一個應用建立獨立的Python運行環境,這樣就能夠對每一個應用的Python環境進行隔離。
virtualenv是如何建立「獨立」的Python運行環境的呢?原理很簡單,就是把系統Python複製一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令python和pip均指向當前的virtualenv環境。
指定python 的版本進行:virtualenv -p /usr/local/bin/python3 --no-site-packages env