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

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

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

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

pip安装后执行代码

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

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

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

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

额外依赖

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

pip install "xxx[yyy]"

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 轿车从天而降电动车主被撞身亡 超速抢道所致:现场视频让网友吵翻

    近日,上海青浦区法院判决轿车从天而降电动车主被撞身亡案,轿车车主被判有期徒刑一年。案件显示当时男子驾驶轿车在上海某路段行驶,前车忽然转弯提速超车,
  • Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java的NIO库提供了内存映射文件的支持,它可以将文件映射到内存中,从而可以更快地读取和写入文件数据。本文将对Java内存映射文件进行详细的介绍和演示。内存映射文件概述内存
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz“难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?”这一番话,出自百合网联合创
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 2天涨粉255万,又一赛道在抖音爆火

    来源:运营研究社作者 | 张知白编辑 | 杨佩汶设计 | 晏谈梦洁这个暑期,旅游赛道彻底火了:有的「地方」火了——贵州村超旅游收入 1 个月超过 12 亿;有的「博主」火了&m
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 三星Galaxy Z Fold5官方渲染图曝光:13.4mm折叠厚度依旧感人

    据官方此前宣布,三星将于7月26日在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
Top