AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

一日一技:Setup.py里面的兩個(gè)小技巧

來(lái)源: 責(zé)編: 時(shí)間:2024-04-08 17:22:35 170觀看
導(dǎo)讀當(dāng)你要自己發(fā)布一個(gè)Python包時(shí),下面這兩個(gè)小技巧可能對(duì)你有用。pip安裝后執(zhí)行代碼今天公眾號(hào)粉絲群里面,有同學(xué)提問(wèn):圖片這個(gè)同學(xué)自己開(kāi)發(fā)了一個(gè)Python包,這個(gè)包在使用pip安裝時(shí),會(huì)產(chǎn)生一些臨時(shí)文件。他希望安裝完成以后,能

當(dāng)你要自己發(fā)布一個(gè)Python包時(shí),下面這兩個(gè)小技巧可能對(duì)你有用。SaT28資訊網(wǎng)——每日最新資訊28at.com

pip安裝后執(zhí)行代碼

今天公眾號(hào)粉絲群里面,有同學(xué)提問(wèn):SaT28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片SaT28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)同學(xué)自己開(kāi)發(fā)了一個(gè)Python包,這個(gè)包在使用pip安裝時(shí),會(huì)產(chǎn)生一些臨時(shí)文件。他希望安裝完成以后,能夠自動(dòng)清理這些臨時(shí)文件。SaT28資訊網(wǎng)——每日最新資訊28at.com

要實(shí)現(xiàn)這個(gè)需求,可以使用Python自帶的setuptools來(lái)實(shí)現(xiàn)。代碼如下:SaT28資訊網(wǎng)——每日最新資訊28at.com

import osfrom setuptools import setup, find_packagesfrom setuptools.command.install import installclass CustomInstallCommand(install):    """自定義安裝命令,執(zhí)行標(biāo)準(zhǔn)安裝后跟自定義代碼。"""    def run(self):        install.run(self)        print("執(zhí)行自定義安裝后的代碼...")        os.remove('需要?jiǎng)h除的文件1路徑')        os.remove('需要?jiǎng)h除的文件2路徑')        print('這里可以寫(xiě)任意代碼')setup(    name='your_package_name',    versinotallow='0.1',    packages=find_packages(),    cmdclass={        'install': CustomInstallCommand,    },)

當(dāng)你把代碼上傳到Pypi以后,用戶(hù)依然是使用pip install xxx來(lái)安裝這個(gè)包。安裝完成以后,就可以自動(dòng)刪除臨時(shí)文件了。SaT28資訊網(wǎng)——每日最新資訊28at.com

額外依賴(lài)

大家在安裝某些第三方庫(kù)時(shí),可能會(huì)看到它的安裝說(shuō)明里面,讓你這樣寫(xiě):SaT28資訊網(wǎng)——每日最新資訊28at.com

pip install "xxx[yyy]"

如下圖所示:SaT28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片SaT28資訊網(wǎng)——每日最新資訊28at.com

這種寫(xiě)法是什么意思呢?實(shí)際上這叫做可選的額外依賴(lài)(extras)。有一些功能比較強(qiáng)大的第三方庫(kù),他需要安裝很多依賴(lài)。但是如果我只需要使用其中的特定某個(gè)功能,那么實(shí)際上只需要安裝這個(gè)功能需要的依賴(lài)就可以了。根本沒(méi)有必要安裝所有依賴(lài)。SaT28資訊網(wǎng)——每日最新資訊28at.com

這種情況下,就可以使用額外依賴(lài)。在setup.py里面,添加extras_require參數(shù):SaT28資訊網(wǎng)——每日最新資訊28at.com

setup(    name='your_package_name',    versinotallow='0.1',    packages=find_packages(),    install_requires=['requests']    extras_require={     'excel': ['pandas>=1.20.0'],     'lxml': ['lxml'],     'all': ['pandas>=1.20.0', 'lxml']    },)

那么當(dāng)用戶(hù)使用pip install xxx安裝這個(gè)包時(shí),默認(rèn)只會(huì)安裝requests一個(gè)依賴(lài)。當(dāng)使用pip install "xxx[lxml]"時(shí),會(huì)安裝requests和lxml。當(dāng)使用pip install "xxx[all]"時(shí),會(huì)安裝requests、lxml和pandas。SaT28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-82042-0.html一日一技:Setup.py里面的兩個(gè)小技巧

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Springboot 3.1.x:快速掌握事件驅(qū)動(dòng)的實(shí)用技巧

下一篇: Async/Await 你是會(huì)用,但是你知道怎么處理錯(cuò)誤嗎?

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
Top