搭建virtualenv

1、前言python

  一、什麼是virtualenv?ruby

    在開發Python應用程序的時候,系統安裝的Python3只有一個版本:3.4。全部第三方的包都會被pip安裝到Python3的site-packages目錄下。若是咱們要同時開發多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統的Python 3。若是應用A須要jinja 2.7,而應用B須要jinja 2.6怎麼辦?這種狀況下,每一個應用可能須要各自擁有一套「獨立」的Python運行環境。virtualenv就是用來爲一個應用建立一套「隔離」的Python運行環境。spa

2、virtualenv部署安裝  
 
  一、安裝virtualenv:
開發一個新的項目,部署一套獨立的Python運行環境,  $ pip3 install virtualenv
   二、
    第一步,建立目錄:
     $ mkdir myproject      $ cd myproject/      myproject michael$ 
    第二步,建立一個獨立的Python運行環境,命名爲venv
命令就能夠建立一個獨立的Python運行環境,咱們還加上了參數,這樣,已經安裝到系統Python環境中的全部第三方包都不會複製過來,這樣,咱們就獲得了一個不帶任何第三方包的「乾淨」的Python運行環境。
     新建的Python環境被放到當前目錄下的目錄。有了這個Python環境,能夠用進入該環境:
     myproject michael$ virtualenv --no-site-packages venv      virtualenv--no-site-packagesvenvvenvsource
   第三部,運行virtualenv
     :myproject michael$ source venv/bin/activate     (venv):myproject michael$
virtualenv
       注意到命令提示符變了,有個(venv)前綴,表示當前環境是一個名爲venv的Python環境。下面正常安裝各類第三方包,並運行python命令:
在環境下,用安裝的包都被安裝到這個環境下,系統Python環境不受任何影響。也就是說,環境是專門針對這個應用建立的。退出當前的環境,使用命令:    (venv):myproject michael$ pip install jinja2    第四部,退出virtualenv環境
    (venv):myproject michael$ deactivate
     :myproject michael$
    
virtualenvvirtualenv(venv):myproject michael$ deactivate
     :myproject michael$
venvpipvenvvenvmyprojectvenvdeactivate
此時就回到了正常的環境,如今pippython均是在系統Python環境下執行。徹底能夠針對每一個應用建立獨立的Python運行環境,這樣就能夠對每一個應用的Python環境進行隔離。virtualenv是如何建立「獨立」的Python運行環境的呢?原理很簡單,就是把系統Python複製一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令pythonpip均指向當前的virtualenv環境

3、總結:code

  virtualenv爲應用提供了隔離的Python運行環境,解決了不一樣應用間多版本的衝突問題。ip

相關文章
相關標籤/搜索