?

如何通過虛擬環境有效管理Python第三方庫

2021-08-23 04:20郭偉強
廣東教育·職教版 2021年7期
關鍵詞:虛擬環境工具模塊

郭偉強

Python語法簡潔,零基礎都可以學;python數據結構豐富,它提供了列表、元組、字典以及Numpy下的數組、Pandas等;Python是一款免費的編程語言,它提供源碼,可以根據自己的需要改寫代碼從而實現自己想要的結果;Python是一種多范式語言,它支持多種編程風格,這使得它的通用性極強,現在使用Python是IT行業的一種趨勢。但是,作為初學者,我們還是會遇到一些問題,本文將詳細講解并分析出現問題時我們該如何解決。

一、配置虛擬環境

1.虛擬環境

虛擬環境是一個虛擬化、從電腦獨立出來的環境。每個Python虛擬環境都有一個獨立的Python解釋器、一套獨立的Python標準庫,還有一套獨立的工具和第三方庫。虛擬環境雖小,但什么都能做。虛擬環境之間相互獨立,互不干擾,當我們進入某個虛擬環境,下載并安裝某個庫,相應的庫也只會對這個虛擬環境起作用。

2.虛擬環境的意義

在實際項目開發中,我們通常會根據自己的需求下載不同的第三方庫,但是每個項目使用的第三方庫可能不一樣,或使用的版本不一樣,這就需要不斷更新或卸載相應的庫。

問題一:項目A需要某個模塊的1.0版本,項目B需要這個模塊的2.0版本。如果沒有安裝虛擬環境,使用這兩個項目時,就需要來回卸載安裝,這樣很容易給項目帶來錯誤。

問題二:以前開發的項目需要在Python2.7環境下運行,而現在的項目需在Python3環境中運行,如果不使用虛擬環境,這兩個項目有可能無法同時使用,使用Python3則之前的項目無法運行,反之則新項目運行有麻煩。如果分別為這兩個項目配置不同的虛擬環境,就可以很好地解決這個問題。

問題三:項目1需要pymysql模塊、requests模塊,而項目2需要numpy模塊與pandas模塊。

問題四:當所有的項目都使用同一個Python運行環境時,也會產生第三方庫的版本沖突(見圖1)。

二、確定虛擬環境的路徑

1.Python運行環境(對應于Python的安裝目錄)

安裝目錄下有Python解釋器、Python標準庫、工具(pip、easy-install等),在site-packages目錄中,安裝的所有第三方庫及其版本,例如pygame(1.9.6)、requests(2.22.0)、pymysql(0.81)、numpy(1.18.1)等。

2.虛擬環境的Python運行環境(根據Python的安裝目錄虛擬出來)

假設有3個項目,都要用到mysql數據庫,但是他們的版本不一樣,這時候我們就可以在各個項目的目錄下創建各自的虛擬環境,每個虛擬環境下都有單獨的Python解釋器、Python標準庫、工具(pip、easy-install等)。因此,我們只需要根據項目需求安裝不同版本的pymysql就可以實現。

3.確定當前Python解釋器對應的Python安裝目錄

在windows系統下,當前Python解釋器的完整路徑是where python的執行結果中的第一行,對應的Python安裝目錄是完整路徑中\python.exe前面的部分。

三、安裝virtualenv

1.virtualenv

(1)virtual的意思是“虛擬的”。

(2)env是“environment”的縮寫,意思是“環境”。

(3)virtualenv即“虛擬環境”。

2.通過工具pip下載安裝

在windows下,打開命令提示符窗口,輸入命令pip install virtualenv就可以安裝。Python使用pip方法安裝第三方庫時,默認情況下,需要從https://pypi.org/資源庫中下載,由于安裝源在國外,可能下載速度慢,甚至無法下載,這時,我們可以通過國內源安裝相應的庫,有以下兩種方式。

(1)臨時使用國內源安裝。

pip install virtualenv -i http://pypi.douban.com/simple/

pip install -i http://pypi.douban.com/simple/ virtualenv

如果提示不可信,則將網站設置為受信任。

pip install virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com virtualenv

#此參數“--trusted-host”表示信任,如果上一個提示不受信任,就使用這個。

(2)永久使用國內源安裝。

①新建pip配置文件夾,直接在user用戶目錄中創建一個名為pip的文件夾(即%HOMEPATH%\pip)。

②接著在pip文件夾中創建一個名為pip的文本文件(后綴名由“.txt”改為“ini”),這里以豆瓣網為例,文件內容如下:

[global]

index-url = https:// pypi.douban.com/simple

[install]

trusted-host = https:// pypi.douban.com

# trusted-host 此參數是為避免麻煩,否則使用時可能會提示不受信任。

(3)安裝好后,輸入virtualenv--version命令測試安裝是否成功。

(4)常用的國內源有:清華大學,https://pypi.tuna.tsinghua.edu.cn/simple;阿里云,http://mirrors.aliyun.com/pypi/simple/;豆瓣,http://pypi.douban.com/simple/。

四、使用virtualenv

1.創建虛擬環境

(1)在創建虛擬環境之前,首先要確定好被創建的虛擬環境所在的目錄,然后在命令提示符窗口或終端窗口中切換到該目錄。

(2)創建虛擬環境的語法是virtualenv 虛擬環境的名稱。如果存在多個Python解釋器,可以選擇指定一個Python解釋器(比如“virtualenv –p /uar/bin/python3.7 MyVirEnv,-p后為指定的Python解釋器),沒有指定則由系統默認的解釋器來搭建。另外,如果在創建虛擬環境時繼承系統第三方庫,可以使用命令virtualenv --system-site-packages MyVirEnv,參數--system-site-packages 指定創建虛擬環境時繼承系統第三方庫。

虛擬環境建好之后,會在項目目錄下面自動創建一個名為MyVirEnv的虛擬環境目錄。它是一個獨立的Python運行環境,包含Python可執行文件以及pip庫,可以直接安裝第三方庫。不過已經安裝到系統Python環境中的第三方庫不會被復制過來,這樣,我們就可以得到一個不帶任何第三方庫的“干凈”的Python運行環境。

2.激活虛擬環境

首先要切換到虛擬環境MyVirEnv目錄下的Scripts,然后執行activate,最后用pip list 查看當前虛擬環境下所安裝的第三方庫。

3.應用虛擬環境

激活虛擬環境后,當前的Python解釋器就是該虛擬環境中的Python解釋器;當前的pip、pip3和easy_install等工具就是該虛擬環境中的相應工具;當前的第三方庫就是該虛擬環境中的第三方庫。

4.刪除虛擬環境

在某個虛擬環境中完成操作后,如果想退出該虛擬環境,就需要反激活該虛擬環境。操作方法:當前目錄可以是任意一個目錄,執行deactivate命令,當前路徑的最前面的小括號以及小括號中虛擬環境的名稱會自動消失。另外,當前的Python解釋器就是Python的安裝目錄中的Python解釋器,當前的pip、pip3和easy_install等工具就是Python的安裝目錄中的相應工具,當前的第三方庫就是Python的安裝目錄中的第三方庫。具體結構如圖2所示。

五、不同系統之間的項目轉移

問題一:在電腦A上的虛擬環境中正常運行的某個Python項目,如何保證它在電腦B上也可以正常運行呢?

問題二:如果兩臺電腦的操作系統不一樣,那么電腦A中的虛擬環境在電腦B中是無法使用的,如果項目使用了虛擬環境中的很多第三方庫,就會導致虛擬環境的體積較大,不方便拷貝。

解決方法:在電腦A上,對于項目使用的虛擬環境中的所有第三方庫,形成一個名稱和版本的列表,存放在某個文件中;把電腦A上的項目和文件拷貝到電腦B上;在電腦B上新建一個虛擬環境,并根據文件把項目使用的第三方庫都下載和安裝到虛擬環境中。

我們可以使用pip freeze>requirements.txt將依賴包的信息進行保存,使用這條命令后,目錄下會多出一個requirements.txt文件。當我們將項目目錄轉移至目的系統后,重建并激活虛擬環境(Python版本需一致),在項目目錄下執行命令pip install -r requirements.txt即可獲得與之前開發時相同的依賴包和相同的環境。

六、在PyCharm中使用virtualenv

創建一個純Python項目,選中單選按鈕New environment using,默認是通過Virtualenv創建虛擬環境。在PyCharm中使用virtualenv比較方便,不需要手動激活虛擬環境,關聯虛擬環境后可以直接在虛擬環境中進行操作。

責任編輯 陳春陽

猜你喜歡
虛擬環境工具模塊
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
波比的工具
波比的工具
準備工具:步驟:
“巧用”工具
動畫廣告設計中虛擬環境的構建方法與運用
虛擬現實技術概論
必修模塊相關知識過關訓練
醫學細胞生物學實驗課教學現狀與改革策略
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合