深入淺析pycharm中 Make available to all projects的含義
一、為什么要進(jìn)行包管理?
python中的三方包琳瑯滿目,提供了各種各樣的功能,使得我們免于自己去手寫很多代碼。比如,我們?cè)跍y(cè)試接口的時(shí)候,我們用到了request,我們?cè)跍y(cè)試前端頁面的時(shí)候,我們用到了webdriver的包,移動(dòng)UI自動(dòng)化測(cè)試我們用到了airtest的包,諸如此類,不勝枚舉。于是,我們?cè)凇疤扉L(zhǎng)地久”的使用過程中,積累的三方包越來越多,具體有多少,大家可以在命令行執(zhí)行pip list看一下,數(shù)量可能超出自己的想象哦。那么現(xiàn)在,領(lǐng)導(dǎo)給你一個(gè)任務(wù),讓你開發(fā)一個(gè)項(xiàng)目,開發(fā)完之后,部署到公共的服務(wù)器上面。對(duì)于這個(gè)場(chǎng)景的包管理,我認(rèn)為有不少人是這么做的:先在本地開發(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)目的依賴包了。也就是說你當(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就是用來為一個(gè)應(yīng)用創(chuàng)建一套“隔離”的Python運(yùn)行環(huán)境。
綜上,包管理要解決的痛點(diǎn)就是:
1、不必要的包的安裝,浪費(fèi)時(shí)間
2、項(xiàng)目之間的依賴包隔離
二、怎么做
1、命令行 先安裝虛擬環(huán)境模塊
pip3 install virtualenv # 安裝virtualenv
進(jìn)入項(xiàng)目目錄,創(chuàng)建python虛擬環(huán)境
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ù)制過來。
激活虛擬環(huán)境
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)目無關(guān)了。
2、使用pycharm
我們開發(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)境下,通過pip freeze > requirements.txt(名字隨意)
- 在目標(biāo)服務(wù)器上執(zhí)行,pip install requirements.txt即可
綜上,python項(xiàng)目間的包管理就是這么easy,當(dāng)你要同時(shí)開發(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)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn)
本文主要介紹了Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
關(guān)于Python時(shí)間日期常見的一些操作方法
Python的datetime模塊是處理日期和時(shí)間的強(qiáng)大工具,datetime類可以獲取當(dāng)前時(shí)間、指定日期、計(jì)算時(shí)間差、訪問時(shí)間屬性及格式化時(shí)間,這些功能使得在Python中進(jìn)行時(shí)間日期處理變得簡(jiǎn)單高效,需要的朋友可以參考下2024-09-09
python 利用opencv實(shí)現(xiàn)圖像網(wǎng)絡(luò)傳輸
這篇文章主要介紹了python 如何利用opencv實(shí)現(xiàn)圖像網(wǎng)絡(luò)傳輸,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11
python管理包路徑之pycharm自動(dòng)解決包路徑注冊(cè)
這篇文章主要介紹了python本管理包路徑之pycharm自動(dòng)解決包路徑注冊(cè),文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
Python自然語言處理 NLTK 庫用法入門教程【經(jīng)典】
這篇文章主要介紹了Python自然語言處理 NLTK 庫用法,結(jié)合實(shí)例形式詳細(xì)分析了NLTK庫的功能、安裝、引用以及使用NLTK庫進(jìn)行文本分析的各種常用操作技巧,需要的朋友可以參考下2018-06-06
python實(shí)現(xiàn)的簡(jiǎn)單RPG游戲流程實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的簡(jiǎn)單RPG游戲流程,實(shí)例分析了Python實(shí)現(xiàn)RPG游戲流程的常用判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-06-06
Python3用tkinter和PIL實(shí)現(xiàn)看圖工具
這篇文章給大家分享了Python3用tkinter和PIL實(shí)現(xiàn)看圖工具的詳細(xì)實(shí)例代碼,有興趣的朋友參考學(xué)習(xí)下。2018-06-06
使用Python進(jìn)行Ping測(cè)試的操作指南
在網(wǎng)絡(luò)工程中,Ping測(cè)試是一種常用的網(wǎng)絡(luò)診斷工具,用于檢查網(wǎng)絡(luò)連接的可達(dá)性和響應(yīng)時(shí)間,隨著Python編程語言的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)工程師開始使用Python進(jìn)行自動(dòng)化網(wǎng)絡(luò)測(cè)試和管理任務(wù),本篇文章將詳細(xì)介紹如何使用Python進(jìn)行Ping測(cè)試,需要的朋友可以參考下2024-06-06

