深入淺析pycharm中 Make available to all projects的含義
一、為什么要進行包管理?
python中的三方包琳瑯滿目,提供了各種各樣的功能,使得我們免于自己去手寫很多代碼。比如,我們在測試接口的時候,我們用到了request,我們在測試前端頁面的時候,我們用到了webdriver的包,移動UI自動化測試我們用到了airtest的包,諸如此類,不勝枚舉。于是,我們在“天長地久”的使用過程中,積累的三方包越來越多,具體有多少,大家可以在命令行執(zhí)行pip list看一下,數量可能超出自己的想象哦。那么現在,領導給你一個任務,讓你開發(fā)一個項目,開發(fā)完之后,部署到公共的服務器上面。對于這個場景的包管理,我認為有不少人是這么做的:先在本地開發(fā)完成,然后使用pip freeze >requirements.txt生成依賴包列表文件。然后將代碼放到服務器上之后,繼續(xù)使用pip install -r requirements.txt在服務器上將依賴包安裝好。當然,你的代碼跑的66的。但是,在這個項目之前,你可能已經做了很多其他的項目,那些項目也有很多當前項目用不到的依賴包,如果不考慮環(huán)境隔離,按照上面的方式去做,當前項目的依賴包就不僅僅是當前項目的依賴包了。也就是說你當前的項目可能只需要10個三方包,你可能裝了100個,嚴重浪費了時間和空間。另外,你的A項目使用django 1.8,另外一個B項目使用django 2.1,怎么實現呢?這種情況下,每個應用可能需要各自擁有一套“獨立”的Python運行環(huán)境。virtualenv就是用來為一個應用創(chuàng)建一套“隔離”的Python運行環(huán)境。
綜上,包管理要解決的痛點就是:
1、不必要的包的安裝,浪費時間
2、項目之間的依賴包隔離
二、怎么做
1、命令行 先安裝虛擬環(huán)境模塊
pip3 install virtualenv # 安裝virtualenv
進入項目目錄,創(chuàng)建python虛擬環(huán)境
cd haima_api virtualenv --no-site-packages myvenv # myenv是虛擬環(huán)境名字,隨便取
這樣我們就創(chuàng)建好了haima_api項目的虛擬環(huán)境,參數--no-site-packages,這樣,已經安裝到系統(tǒng)Python環(huán)境中的所有第三方包都不會復制過來。
激活虛擬環(huán)境
source myvenv/bin/activate
激活之后,命令行最前面會加上一個標識。如下。
這個時候,在命令行下面執(zhí)行pip install安裝后的包就只會安裝到剛剛創(chuàng)建的虛擬環(huán)境下,只和當前的項目掛鉤,與其他項目無關了。
2、使用pycharm
我們開發(fā)的時候,更多會使用到pycharm這個ide,新建項目的時候選擇虛擬環(huán)境即可
pycharm使用虛擬環(huán)境創(chuàng)建項目
inherit global site-packages:勾選上的話代表創(chuàng)建的新項目需要copy一份全局包到虛擬環(huán)境。
Make available to all projects:勾選上,表示,當在虛擬環(huán)境下安裝包的時候,copy一份到全局。
前面文章中一只提到了全局包和虛擬環(huán)境里的包,在此解釋一下他們的存放位置:
全局包存放在python安裝目錄下的\Lib\site-packages子目錄里。
虛擬環(huán)境包安裝在關聯(lián)的項目目錄下面的\${虛擬環(huán)境名}\Lib\site-packages子目錄里
三、項目部署時批量導包
- 在當前虛擬環(huán)境下,通過pip freeze > requirements.txt(名字隨意)
- 在目標服務器上執(zhí)行,pip install requirements.txt即可
綜上,python項目間的包管理就是這么easy,當你要同時開發(fā)多個項目的時候,這個是必不可少的。
到此這篇關于深入淺析pycharm中 Make available to all projects的含義的文章就介紹到這了,更多相關pycharm Make available to all projects內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解python string類型 bytes類型 bytearray類型
這篇文章主要介紹了python string類型 bytes類型 bytearray類型,需要的朋友可以參考下2017-12-12Python DataFrame.groupby()聚合函數,分組級運算
python的pandas包提供的數據聚合與分組運算功能很強大,也很靈活,本文就帶領大家一起來了解groupby技術,感興趣的朋友跟隨小編一起來看下2018-09-09Pytorch之nn.Upsample()和nn.ConvTranspose2d()用法詳解
nn.Upsample和nn.ConvTranspose2d是PyTorch中用于上采樣的兩種主要方法,nn.Upsample通過不同的插值方法(如nearest、bilinear)執(zhí)行上采樣,沒有可學習的參數,適合快速簡單的尺寸增加,而nn.ConvTranspose2d通過可學習的轉置卷積核進行上采樣2024-10-10Python接口測試之如何使用requests發(fā)起請求
這篇文章主要介紹了Python接口測試之如何使用requests發(fā)起請求問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06