当前位置:首页 > 科技  > 软件

一日一技:Setup.py里面的两个小技巧

来源: 责编: 时间:2024-04-08 17:22:35 308观看
导读当你要自己发布一个Python包时,下面这两个小技巧可能对你有用。pip安装后执行代码今天公众号粉丝群里面,有同学提问:图片这个同学自己开发了一个Python包,这个包在使用pip安装时,会产生一些临时文件。他希望安装完成以后,能

当你要自己发布一个Python包时,下面这两个小技巧可能对你有用。mgC28资讯网——每日最新资讯28at.com

pip安装后执行代码

今天公众号粉丝群里面,有同学提问:mgC28资讯网——每日最新资讯28at.com

图片图片mgC28资讯网——每日最新资讯28at.com

这个同学自己开发了一个Python包,这个包在使用pip安装时,会产生一些临时文件。他希望安装完成以后,能够自动清理这些临时文件。mgC28资讯网——每日最新资讯28at.com

要实现这个需求,可以使用Python自带的setuptools来实现。代码如下:mgC28资讯网——每日最新资讯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来安装这个包。安装完成以后,就可以自动删除临时文件了。mgC28资讯网——每日最新资讯28at.com

额外依赖

大家在安装某些第三方库时,可能会看到它的安装说明里面,让你这样写:mgC28资讯网——每日最新资讯28at.com

pip install "xxx[yyy]"

如下图所示:mgC28资讯网——每日最新资讯28at.com

图片图片mgC28资讯网——每日最新资讯28at.com

这种写法是什么意思呢?实际上这叫做可选的额外依赖(extras)。有一些功能比较强大的第三方库,他需要安装很多依赖。但是如果我只需要使用其中的特定某个功能,那么实际上只需要安装这个功能需要的依赖就可以了。根本没有必要安装所有依赖。mgC28资讯网——每日最新资讯28at.com

这种情况下,就可以使用额外依赖。在setup.py里面,添加extras_require参数:mgC28资讯网——每日最新资讯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。mgC28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-82042-0.html一日一技:Setup.py里面的两个小技巧

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Springboot 3.1.x:快速掌握事件驱动的实用技巧

下一篇: Async/Await 你是会用,但是你知道怎么处理错误吗?

标签:
  • 热门焦点
  • 一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    终于,在经过了几波预热之后,一加Ace2 Pro的外观真机图在网上出现了。还是博主数码闲聊站曝光的,这次的外观设计还是延续了一加11的方案,只是细节上有了调整,例如新加入了钛空灰
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • 一加首款折叠屏!一加Open渲染图出炉:罕见单手可握小尺寸

    8月5日消息,此前就有爆料称,一加首款折叠屏手机将会在第三季度上市,如今随着时间临近,新机的各种消息也开始浮出水面。据悉,这款新机将会被命名为“On
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
  • 2022爆款:ROG魔霸6 冰川散热系统持续护航

    喜逢开学季,各大商家开始推出自己的新产品,进行打折促销活动。对于忠实的端游爱好者来说,能够拥有一款梦寐以求的笔记本电脑是一件十分开心的事。但是现在的
Top