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:\Users\Administrator\Envs這一目錄中,也就是說,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功能更加強大、多樣,當然是用上也復雜一下,留待后續博文再來總結。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM