爲何要使用python的虛擬環境呢?:python
首先咱們來講不實用虛擬環境的狀況:spa
在Python應用程序開發的過程當中,系統安裝的Python3只有一個版本:3.7。全部第三方的包都會被pip3
安裝到 Python3的site-packages
目錄下。code
若是咱們要同時開發多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統的Python 3中,若是應用A 須要tkinter 2.3,而應用B須要tkinter 3.0,那該怎麼怎麼辦?blog
這種狀況下,每一個應用可能須要各自擁有一套「獨立」的Python運行環境。virtualenv就是用來爲一個應用建立一套「隔 離」的Python運行環境。ip
因此說virtualenv爲應用提供了隔離的Python運行環境,解決了不一樣應用間庫版本的衝突問題。、開發
那該若是建立虛擬環境和使用呢?it
1. 首先是安裝 virtualenvpip
#pip3 install virtualenv
2. 爲項目建立一個工做目錄class
#mkdir independentProject #cd independentProject
3. 在該目錄下建立一個獨立的python運行環境 independentEnv變量
#virtualenv --no-site-packages independentEnv
命令virtualenv
就能夠建立一個獨立的Python運行環境,咱們還加上了參數--no-site-packages
,這樣,已經安裝到系統Python環境中的全部第三方包都不會複製過來,這樣,咱們就獲得了一個不帶任何第三方包的「乾淨」的Python運行環境。
新建的Python環境被放到當前目錄下的independentEnv目錄。有了independentEnv這個Python環境,能夠用source
進入該環境:
進入項目目錄啓動虛擬環境
#source independentEnv/bin/activate
成功切換後會命令提示符前面會有虛擬環境的名字(independentEnv),表示當前環境是一個名爲independentEnv的Python環境。
下面正常安裝各類第三方包。
#pip3 install tkinter
在independentEnv環境下,用pip
安裝的包都被安裝到independentEnv這個環境下,系統Python環境不受任何影響。也就是說,independentEnv環境是專門針對independentProject這個應用建立的。
退出當前的independentEnv環境,使用deactivate
命令
#deactivate
此時就回到了正常的環境,如今pip3
或python
均是在系統Python環境下執行。
徹底能夠針對每一個應用建立獨立的Python運行環境,這樣就能夠對每一個應用的Python環境進行隔離。
virtualenv是如何建立「獨立」的Python運行環境的呢?原理很簡單,就是把系統Python複製一份到virtualenv的環境,進入項目目錄,用命令source independentEnv/bin/activate
打開一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令python
和pip3
均指向當前的virtualenv環境。