原文出自廖雪峯博客。python
在開發python應用程序的時候,系統安裝的python3只有一個版本:3.4。全部的第三方的包都回被pip安裝到python3的site-packages目錄下。less
若是咱們要要同時開發多個應用程序,那這些應用都共用一個python,就是安裝在系統的python3。若是應用A須要jinja 2.7,而應用B須要jinja 2.6怎麼辦?工具
這種狀況下,每一個應用須要各自擁有一套「獨立」的python運行環境。有兩個經常使用工具用於建立python「獨立」環境:ip
virtualenv就是用來爲一個應用建立一套「隔離」的python運行環境。開發
首先,咱們用pip安裝virtualenv文檔
pip3 install virtualenvget
而後,假定咱們要開發一個新的項目,須要一套獨立的python運行環境,能夠這麼作:博客
在項目目錄下,建立一個獨立的python運行環境,命名爲 venvit
virtualenv --no-site-packages venvpip
命令 virtualenv就能夠建立一個獨立的python運行環境,咱們還加上了參數 --no-site-packages,這樣,已經安裝到系統python環境中的全部第三方包都不會複製過來,這樣,咱們就獲得了一個不帶任何第三方包的「乾淨」的pyhton運行環境。
新建的python環境被放到項目錄下的venv目錄,有了 venv 這個python環境,就能夠用source進入該環境:
source ./venv/bin/activate
或者是
source ./venv/Scripts/activate
注意查看activate命令被放在了哪一個目錄下。
執行上面的命令後,能夠看懂命令指示符變了,有個 (venv) 前綴,表示當前環境是一個名爲 venv 的python環境,下面能夠正常安裝各類第三方包,並運行python命令。
在 venv 環境下,用 pip 安裝的包都在安裝到了 venv 這個環境下,系統python環境不受任何影響,也就是說, venv環境是專門針對當前項目建立的。
退出 venv 環境,使用 deactivate 命令:
deactivate
這樣就回到了正常的環境。
viratualenv是如何建立「獨立」的python運行環境呢?其實就是把系統python複製一份到virtualenv的環境,用命令 source 進入一個virutalenv環境時,virtualenv會修改相關環節變量,讓命令python和pip均指向當前的virtualenv環境。
venv不用安裝,不過須要python3.3以上。建立一個獨立的python運行環境,命名爲venv
python3 -m venv ./venv
上面的命令會在當前目錄下建立一個名爲venv的python環境中。進入和退出該環境的方式和virtualenv一致。
參考文檔:
https://packaging.python.org/tutorials/installing-packages/#creating-virtual-environments 官方文檔