成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端
這種寫法是什么意思呢?實際上這叫做可選的額外依賴(extras)。有一些功能比較強大的第三方庫,他需要安裝很多依賴。但是如果我只需要使用其中的特定某個功能,那么實際上只需要安裝這個功能需要的依賴就可以了。

當你要自己發布一個Python包時,下面這兩個小技巧可能對你有用。

pip安裝后執行代碼

今天公眾號粉絲群里面,有同學提問:

圖片圖片

這個同學自己開發了一個Python包,這個包在使用pip安裝時,會產生一些臨時文件。他希望安裝完成以后,能夠自動清理這些臨時文件。

要實現這個需求,可以使用Python自帶的setuptools來實現。代碼如下:

import os
from setuptools import setup, find_packages
from setuptools.command.install import install

class 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來安裝這個包。安裝完成以后,就可以自動刪除臨時文件了。

額外依賴

大家在安裝某些第三方庫時,可能會看到它的安裝說明里面,讓你這樣寫:

pip install "xxx[yyy]"

如下圖所示:

圖片圖片

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

這種情況下,就可以使用額外依賴。在setup.py里面,添加extras_require參數:

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。

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2023-09-06 00:15:04

Pandas技巧格式

2021-09-13 20:38:47

Python鏈式調用

2021-03-12 21:19:15

Python鏈式調用

2021-05-27 20:50:28

return生成器參數

2021-10-15 21:08:31

PandasExcel對象

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-10-06 23:17:26

Python抽象類接口

2025-05-28 03:15:00

Scrapy數據sleep

2021-04-12 21:19:01

PythonMakefile項目

2022-06-28 09:31:44

LinuxmacOS系統

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-11-13 09:18:09

2021-04-05 14:47:55

Python多線程事件監控

2022-03-12 20:38:14

網頁Python測試

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2021-04-19 23:29:44

MakefilemacOSLinux

2021-08-13 07:56:13

MongoDBScrapy元素

2022-05-16 20:18:41

商品數據監控

2024-11-11 00:38:13

Mypy靜態類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 韩国av一区二区 | 欧美激情在线观看一区二区三区 | 国产一区二区精品在线 | 国产精品亚洲第一 | 精品一区二区三区91 | 成人不卡一区二区 | 一区在线观看 | 欧美一区二区在线 | 欧美日韩在线一区二区 | 日本黄色不卡视频 | 亚洲成人av在线播放 | 亚洲精品一区在线 | 福利久久 | av在线成人| 亚洲视频在线观看一区二区三区 | 国产日韩精品视频 | 国产欧美日韩一区二区三区在线观看 | 精品九九九 | 99久久夜色精品国产亚洲96 | 欧美黑人激情 | 日本精品一区二区三区视频 | 亚洲中午字幕 | 欧美一级毛片在线播放 | h在线| 国产午夜三级一区二区三 | 国产精品久久久久久久久免费丝袜 | 草比网站 | 又黄又爽的网站 | 欧美一区二区三区小说 | 色在线视频网站 | 99热精品在线 | 在线观看日本网站 | 欧洲一级视频 | 精品伦精品一区二区三区视频 | 国产精品免费一区二区三区四区 | 亚洲精品在线看 | 在线观看国产www | 97免费在线观看视频 | 欧美日韩视频在线播放 | 干干干日日日 | 日韩一区二区三区四区五区六区 |