一、為什么要進(jìn)行包管理?
python中的三方包琳瑯滿目,提供了各種各樣的功能,使得我們免于自己去手寫(xiě)很多代碼。比如,我們?cè)跍y(cè)試接口的時(shí)候,我們用到了request,我們?cè)跍y(cè)試前端頁(yè)面的時(shí)候,我們用到了webdriver的包,移動(dòng)UI自動(dòng)化測(cè)試我們用到了airtest的包,諸如此類,不勝枚舉。于是,我們?cè)?ldquo;天長(zhǎng)地久”的使用過(guò)程中,積累的三方包越來(lái)越多,具體有多少,大家可以在命令行執(zhí)行pip list看一下,數(shù)量可能超出自己的想象哦。那么現(xiàn)在,領(lǐng)導(dǎo)給你一個(gè)任務(wù),讓你開(kāi)發(fā)一個(gè)項(xiàng)目,開(kāi)發(fā)完之后,部署到公共的服務(wù)器上面。對(duì)于這個(gè)場(chǎng)景的包管理,我認(rèn)為有不少人是這么做的:先在本地開(kāi)發(fā)完成,然后使用pip freeze >requirements.txt生成依賴包列表文件。然后將代碼放到服務(wù)器上之后,繼續(xù)使用pip install -r requirements.txt在服務(wù)器上將依賴包安裝好。當(dāng)然,你的代碼跑的66的。但是,在這個(gè)項(xiàng)目之前,你可能已經(jīng)做了很多其他的項(xiàng)目,那些項(xiàng)目也有很多當(dāng)前項(xiàng)目用不到的依賴包,如果不考慮環(huán)境隔離,按照上面的方式去做,當(dāng)前項(xiàng)目的依賴包就不僅僅是當(dāng)前項(xiàng)目的依賴包了。也就是說(shuō)你當(dāng)前的項(xiàng)目可能只需要10個(gè)三方包,你可能裝了100個(gè),嚴(yán)重浪費(fèi)了時(shí)間和空間。另外,你的A項(xiàng)目使用django 1.8,另外一個(gè)B項(xiàng)目使用django 2.1,怎么實(shí)現(xiàn)呢?這種情況下,每個(gè)應(yīng)用可能需要各自擁有一套“獨(dú)立”的Python運(yùn)行環(huán)境。virtualenv就是用來(lái)為一個(gè)應(yīng)用創(chuàng)建一套“隔離”的Python運(yùn)行環(huán)境。
綜上,包管理要解決的痛點(diǎn)就是:
1、不必要的包的安裝,浪費(fèi)時(shí)間
2、項(xiàng)目之間的依賴包隔離
二、怎么做
1、命令行 先安裝虛擬環(huán)境模塊
1
|
pip3 install virtualenv # 安裝virtualenv |
進(jìn)入項(xiàng)目目錄,創(chuàng)建python虛擬環(huán)境
1
2
3
|
cd haima_api virtualenv - - no - site - packages myvenv # myenv是虛擬環(huán)境名字,隨便取 |
這樣我們就創(chuàng)建好了haima_api項(xiàng)目的虛擬環(huán)境,參數(shù)--no-site-packages,這樣,已經(jīng)安裝到系統(tǒng)Python環(huán)境中的所有第三方包都不會(huì)復(fù)制過(guò)來(lái)。
激活虛擬環(huán)境
1
|
source myvenv / bin / activate |
激活之后,命令行最前面會(huì)加上一個(gè)標(biāo)識(shí)。如下。
這個(gè)時(shí)候,在命令行下面執(zhí)行pip install安裝后的包就只會(huì)安裝到剛剛創(chuàng)建的虛擬環(huán)境下,只和當(dāng)前的項(xiàng)目掛鉤,與其他項(xiàng)目無(wú)關(guān)了。
2、使用pycharm
我們開(kāi)發(fā)的時(shí)候,更多會(huì)使用到pycharm這個(gè)ide,新建項(xiàng)目的時(shí)候選擇虛擬環(huán)境即可
pycharm使用虛擬環(huán)境創(chuàng)建項(xiàng)目
inherit global site-packages:勾選上的話代表創(chuàng)建的新項(xiàng)目需要copy一份全局包到虛擬環(huán)境。
Make available to all projects:勾選上,表示,當(dāng)在虛擬環(huán)境下安裝包的時(shí)候,copy一份到全局。
前面文章中一只提到了全局包和虛擬環(huán)境里的包,在此解釋一下他們的存放位置:
全局包存放在python安裝目錄下的\Lib\site-packages子目錄里。
虛擬環(huán)境包安裝在關(guān)聯(lián)的項(xiàng)目目錄下面的\${虛擬環(huán)境名}\Lib\site-packages子目錄里
三、項(xiàng)目部署時(shí)批量導(dǎo)包
- 在當(dāng)前虛擬環(huán)境下,通過(guò)pip freeze > requirements.txt(名字隨意)
- 在目標(biāo)服務(wù)器上執(zhí)行,pip install requirements.txt即可
綜上,python項(xiàng)目間的包管理就是這么easy,當(dāng)你要同時(shí)開(kāi)發(fā)多個(gè)項(xiàng)目的時(shí)候,這個(gè)是必不可少的。
到此這篇關(guān)于深入淺析pycharm中 Make available to all projects的含義的文章就介紹到這了,更多相關(guān)pycharm Make available to all projects內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/pfm685757/article/details/108590680