一篇文章幫你解決python的包管理


寫python代碼的人都知道,一個項目寫下下來,不可避免的都需要使用很多第三方包,通常我們都是通過pip install ,然而當我們需要上線的時候問題來了,如果中間你自己不記得自己安裝了多少個包,這個時候你就面臨着需要導出包名字,這個時候你可能想到了 pip freeze > requirements.txt,但是實際開發中你可能會開發很多個項目,每個項目可能都是pip安裝了一堆包,如果每次都是這樣,導出的包會越來越多。並且多個項目之間並不能很好的隔離,並且可能你每個項目中用的python環境不同,包的版本不同,而這在后期可能造成很多不可預知的麻煩。這個時候我們就需要用到python的虛擬環境啦
 

虛擬環境virtualenv

不同的項目使用不同版本的某些包,可能某些原因使用舊版本的包還不能升級,所以這個時候我們可以通過虛擬環境來解決這個問題。我們需要安裝一個特殊的包:virtualenv
 
安裝:pip install virtualenv,如下圖所示表示安裝成功

創建虛擬環境

命令:virtualenv venv

執行這個命令會默認在當前目錄創建一個虛擬環境venv 目錄,這里包含了Python可執行文件,常用的標准庫,激活virtualenv環境腳本的目錄,激活virtualenv環境的腳本在下圖目錄中的Scripts目錄中的activate,執行這個程序就可以激活

當我們激活虛擬環境后,會出現如下圖所示,標注的部分就表示你已經進入了虛擬環境。如果想要退出虛擬環境需要執行deactivate

在虛擬環境中你的環境和你本機的python環境是隔離的如果你在虛擬環境中通過pip安裝包只會安裝在你這個虛擬環境目錄下,並不會安裝到你的電腦

python環境下

 

但是如果僅僅是這個模塊好像是沒那么方便,這里我們需要再安裝一個模塊virtualenvwrapper,其實這個是對virtualenv模塊的擴展,讓你更加方便的管理和創建虛擬環境

virtualenvwrapper模塊

virtualenvwrapper是對virtualenv的功能擴展,它可以幫我們:

管理全部的虛擬環境

更加方便的創建,刪除和拷貝虛擬環境

安裝:pip install virtualenvwrapper

為了方便管理需要在環境變量里添加一個環境變量,這里我創建一個目錄,用於存放所有的虛擬環境,我這里用的是E:\venv_project目錄

 安裝完成virtualenvwrapper 之后,我們就有了幾個命令可以用:

mkvirtualenv :創建虛擬環境

lsvirtualenv:列出全部的虛擬環境

showvirtualenv:列出單個虛擬機環境的信息

rmvirtualenv:刪除一個虛擬環境

cpvirtualenv:拷貝一個虛擬環境

allvirtualenv:對當前虛擬環境執行統一的命令

cdvirtualenv:可以直接切換到虛擬環境的子目錄里

cdsitepackages:和cdvirtualenv同理,切換到虛擬環境的site-packages目錄下

lssitepackages:列出site-packages目錄下的目錄

上述命令的簡單實用例子:

因為上面已經提前添加了WORKON_HOME環境變量,所以我們通過mkvirtualenv命令創建的虛擬環境都會創建到這個目錄下,

這里還有一個命令:workon命令可以列出所有的虛擬環境

我們通過mkvirtualenv創建虛擬環境,並通過通過workon命令可以查看我們創建的所有虛擬機環境,以及通過workon命令在不同的虛擬環境中迅速切換

 

這樣虛擬環境就安裝完成了

 

總結

通過上面的虛擬環境,我們每個項目都可以運行在獨立的python環境中,也不用擔心不同項目之間python包的干擾,還能保證你本地測試環境的代碼完全和上線時是一致的

再也不用因為在測試環境好好地,放到線上各種奇怪的問題 ,如下圖上線之后很多程序員發現bug的感覺:

 我的博客即將入駐“雲棲社區”,誠邀技術同仁一同入駐。


免責聲明!

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



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