2021-05-12 14:32:11
Python開發之虛擬環境管理:virtualenv、virtualenvwrapper、pycharm
1 引言
進行Python開發時,多個專案可能使用到不同的依賴,例如A專案需要1.8版本的Django,而B專案需要2.0版本的Django,這時候如果沒有使用虛擬環境,就需要來回解除安裝和安裝Django,十分不便。虛擬環境的出現可以很好的解決這一問題。
本篇博文主要紹Python的虛擬環境管理方法,包括virtualenv、virtualenvwrapper、pycharm等。需要說明的是,在使用前面提到的幾種方法之前,必須確保系統中已經至少安裝有一個Python版本。
2 virtualenv
(1 安裝
virtualenv的安裝與Python普通第三方包安裝一樣,都可以通過pip來安裝:
pip install virtualenv
(2)建立虛擬環境
建立一個名為firstenv的虛擬環境:
virtualenv firstenv
上圖中最後一行出現“done”的字樣說明虛擬環境安裝成功,此時,在當前資料夾會出現一個與剛新建的虛擬環境同名的資料夾:
在firstenv資料夾內部的有一個銘文Scripts的子資料夾,這個資料夾存放了Python環境必備的一些可執行檔案:
看到這裡你應該明白了,virtualenv所謂的虛擬環境就是在當前資料夾中以真實環境為模板,另外儲存一套編譯工具,實現與正式環境的隔離。
那麼,剛新建號的環境該怎麼使用呢?
(3)進入-退出虛擬環境
在進入虛擬環境前,需要在命令列中先進入上面提到的Scripts資料夾中,然後執行Scripts資料夾中的activate.bat這一批次檔進入虛擬環境:
activate.bat
執行activate.bat檔案後,命令列每一行前面都會出現虛擬環境標識,如下圖所示,證明已經成功進入虛擬環境:
輸入Python,檢視一下虛擬環境版本:
剛裝好的虛擬環境是非常乾淨的,驗證一下:
果然沒有任何其它的第三方包。如果要為接下來的開發必要的第三方包,可以使用pip命令,這與在正式環境中的操作時一樣的,另外說明一下,因為已經進入了虛擬環境,使用pip安裝第三方包時,命令列可以在任何目錄在中:
那麼,怎麼退出這個虛擬環境呢?執行Scripts資料夾下deactivate.bat檔案,不過,也可以不用回到Scripts資料夾中,直接執行deactivate.bat(字尾名可省略)即可。
可以看到,執行deactivate.bat後,每行開頭的(firstenv)標識果然沒了。
3 virtualenvwrapper
virtualenv每一次使用都需要進入到虛擬環境目錄的Scripts資料夾中,然後才能執行activate.bat檔案,進入虛擬環境。使用有些繁瑣不說,如果建立的虛擬環境多一些的話,管理也有些麻煩,所以就有了virtualenvwrapper。
(1)安裝virtualenvwrapper
與virtualenv一樣,可以通過pip安裝:
pip install virtualenvwrapper-win
(2)建立虛擬環境
建立一個名為secondenv的虛擬環境:
mkvirtualenv secondenv
執行上述命令後,在當前資料夾下可不會找到剛建立好的虛擬環境。通過雲上面圖片,發現virtualenvwrapper將虛擬環境安裝在C:UsersAdministratorEnvs這一目錄中,也就是說,virtualenvwrapper預設將虛擬環境同一安裝到C:Users使用者名稱Envs這一目錄中。
通過workon命令檢視已經新建的虛擬環境列表:
可以看到,我們無論在哪個目錄下,執行workon命令,都可以列出workon新建的所有虛擬環境。
不過美中不足的是,virtualenvwrapper將虛擬環境安裝在了預設的資料夾中。那麼,怎麼virtualenvwrapper將虛擬環境同一安裝到我們指定的目錄中呢?那就要通過設定系統環境變數來實現了。
首先新建一個資料夾,專門弄用來存放virtualenvwrapper建立的虛擬環境,例如在D槽新建一個名為virtualenvs的資料夾。然後進行如下設定:
桌面“此電腦”圖示->右鍵->屬性->高階系統設定->高階->環境變數->新建系統變數,接下來如下圖所示,變數名輸入WORKON_HOME,變數值輸入資料夾路徑,即D:virtualenvs,輸入完成後點選確定,儲存退出。
重新開一個命令列視窗(必須),再次新建虛擬環境:
檢視一下當前新建好的虛擬環境列表:
發現只有一個thirdenv,為什麼之前新建的secondenv沒有列出來呢?因為secondenv在之前預設的檔案路徑中,workon只會列出當前指定的檔案路徑下的虛擬環境。
(3)進入-退出虛擬環境
細心地你一定已經發現,事實上,用mkvirtualenv命令新建虛擬環境的時候,會自動進入虛擬環境中。不過,如果我們要進入已經新建好的虛擬環境該怎麼做呢?當workon命令不帶任何引數時,作用是列出所有的虛擬環境;當workon命令後面接虛擬環境名時,作用便是進入指定的虛擬環境。另外,上文也提到過,相比於virtualenv,使用virtualenvwrapper的好處就是你可以在任意目錄下進入已建立的虛擬環境中。例如,進入剛新建好的虛擬環境thirdenv中:
workon thirdenv
退出虛擬環境的方法倒是與virtualenv一樣,採用deactivate這一命令:
最後總結一下virtualenvwrapper的幾個常用命令:
新建虛擬環境:mkvirtualenv + 虛擬環境名
列出所有虛擬環境:workon
進入虛擬環境:workon + 虛擬環境名
退出虛擬環境:deactivate
4 pycharm
一般而言,直接使用上面介紹的virtualenv和virtualenvwrapper兩種方法進行虛擬環境管理還是比較少的,大多數情況下還是配合IDE進行虛擬環境管理。毋庸置疑,pycharm是最好最流行的Python IDE,功能強大,方便實用。pycharm中也整合了虛擬環境管理功能。
我們使用pycharm新建一個Python專案,並在建立專案時建立虛擬環境:
點選右下角的Create之後,專案就建立好啦。
剛建立好專案虛擬環境可是乾淨得很,需要為專案安裝各種依賴,也就是安裝第三方包,怎麼做呢?
按下面步驟一次開啟:File->Settings->Project:studyenv->Project Interpreter,會彈出下面的視窗:
然後點選右上角的“+”號,出現下面的介面:
包管理主要也是在這個視窗中進行。
回到上一個視窗,我們可以看到包列表,裡面確實多了一個Django:
Python進行編譯時,pycharm會自動選用專案中的虛擬環境進行編譯,所以pycharm中可沒有進入和退出虛擬環境一說。怎麼樣,非常方便吧!
5 總結
合理利用虛擬環境,可以很好得解決同時開發多個專案時的環境問題。本文介紹了virtualenv、virtualenvwrapper、pycharm等3個虛擬環境管理工具,另外要說的是,除了這三個工具外,Annacon也是一個很強大的虛擬環境管理工具,Anaconda功能更加強大、多樣,當然是用上也複雜一下,見 https://www.linuxidc.com/Linux/2019-08/160160.htm 。
相關文章