自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

當(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)清理這些臨時(shí)文件。

要實(shí)現(xiàn)這個(gè)需求,可以使用Python自帶的setuptools來(lái)實(shí)現(xiàn)。代碼如下:

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

class 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以后,用戶依然是使用pip install xxx來(lái)安裝這個(gè)包。安裝完成以后,就可以自動(dòng)刪除臨時(shí)文件了。

額外依賴

大家在安裝某些第三方庫(kù)時(shí),可能會(huì)看到它的安裝說(shuō)明里面,讓你這樣寫(xiě):

pip install "xxx[yyy]"

如下圖所示:

圖片圖片

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

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

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)用戶使用pip install xxx安裝這個(gè)包時(shí),默認(rèn)只會(huì)安裝requests一個(gè)依賴。當(dāng)使用pip install "xxx[lxml]"時(shí),會(huì)安裝requests和lxml。當(dāng)使用pip install "xxx[all]"時(shí),會(huì)安裝requests、lxml和pandas。

責(zé)任編輯:武曉燕 來(lái)源: 未聞Code
相關(guān)推薦

2023-09-06 00:15:04

Pandas技巧格式

2021-03-12 21:19:15

Python鏈?zhǔn)?/a>調(diào)用

2021-09-13 20:38:47

Python鏈?zhǔn)?/a>調(diào)用

2021-05-27 20:50:28

return生成器參數(shù)

2021-10-06 23:17:26

Python抽象類接口

2021-10-15 21:08:31

PandasExcel對(duì)象

2021-04-27 22:15:02

Selenium瀏覽器爬蟲(chóng)

2021-04-12 21:19:01

PythonMakefile項(xiàng)目

2022-05-16 20:18:41

商品數(shù)據(jù)監(jiān)控

2021-08-13 07:56:13

MongoDBScrapy元素

2023-10-28 12:14:35

爬蟲(chóng)JavaScriptObject

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2024-11-13 09:18:09

2022-03-12 20:38:14

網(wǎng)頁(yè)Python測(cè)試

2021-04-19 23:29:44

MakefilemacOSLinux

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2024-07-19 18:23:17

2021-05-08 19:33:51

移除字符零寬
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)