日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

一日一技:Setup.py里面的兩個小技巧

來源: 責編: 時間:2024-04-08 17:22:35 213觀看
導讀當你要自己發布一個Python包時,下面這兩個小技巧可能對你有用。pip安裝后執行代碼今天公眾號粉絲群里面,有同學提問:圖片這個同學自己開發了一個Python包,這個包在使用pip安裝時,會產生一些臨時文件。他希望安裝完成以后,能

當你要自己發布一個Python包時,下面這兩個小技巧可能對你有用。d9p28資訊網——每日最新資訊28at.com

pip安裝后執行代碼

今天公眾號粉絲群里面,有同學提問:d9p28資訊網——每日最新資訊28at.com

圖片圖片d9p28資訊網——每日最新資訊28at.com

這個同學自己開發了一個Python包,這個包在使用pip安裝時,會產生一些臨時文件。他希望安裝完成以后,能夠自動清理這些臨時文件。d9p28資訊網——每日最新資訊28at.com

要實現這個需求,可以使用Python自帶的setuptools來實現。代碼如下:d9p28資訊網——每日最新資訊28at.com

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

當你把代碼上傳到Pypi以后,用戶依然是使用pip install xxx來安裝這個包。安裝完成以后,就可以自動刪除臨時文件了。d9p28資訊網——每日最新資訊28at.com

額外依賴

大家在安裝某些第三方庫時,可能會看到它的安裝說明里面,讓你這樣寫:d9p28資訊網——每日最新資訊28at.com

pip install "xxx[yyy]"

如下圖所示:d9p28資訊網——每日最新資訊28at.com

圖片圖片d9p28資訊網——每日最新資訊28at.com

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

這種情況下,就可以使用額外依賴。在setup.py里面,添加extras_require參數:d9p28資訊網——每日最新資訊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']    },)

那么當用戶使用pip install xxx安裝這個包時,默認只會安裝requests一個依賴。當使用pip install "xxx[lxml]"時,會安裝requests和lxml。當使用pip install "xxx[all]"時,會安裝requests、lxml和pandas。d9p28資訊網——每日最新資訊28at.com

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

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Springboot 3.1.x:快速掌握事件驅動的實用技巧

下一篇: Async/Await 你是會用,但是你知道怎么處理錯誤嗎?

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 惠州市| 福州市| 乐安县| 丹阳市| 东阳市| 新泰市| 辽宁省| 开原市| 临潭县| SHOW| 沙坪坝区| 恭城| 酉阳| 岢岚县| 子洲县| 合山市| 和平区| 海门市| 剑河县| 太康县| 甘肃省| 丰镇市| 南充市| 无极县| 桃园市| 阿拉善左旗| 泌阳县| 孝感市| 荆州市| 海林市| 永新县| 佛冈县| 嘉祥县| 利津县| 陵川县| 温宿县| 正安县| 翁牛特旗| 报价| 新宁县| 岚皋县|