范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python冷知识如何找出新版本增加或删除了哪些标准库?

  "内置电池"是 Python 最为显著的特性之一,它提供了 200 多个开箱即用的标准库。但是,历经了 30 多年的发展,很多标准库已经成为了不得不舍弃的历史包袱,因为它们正在"漏电"!
  好消息是,Python 正在进行一场"瘦身手术",详情可查阅: Python 3.12 正在移除大量的模块 终于,Python 标准库要做"瘦身手术"了! 聊聊 Python 的内置电池
  那么,我们会有这样一个话题:当 Python 发布了一个新版本的时候,如何找出它比上一个版本(或者更早版本)增加或删除了哪些标准库呢?
  比如,当 Python 发布 3.11.1 版本时,如何找出它相比于上一个版本(即 3.11.0),增删了哪些标准库呢?
  也许你马上就想到了一个办法:查看官方的版本变更文档啊~
  没错,官方文档里肯定包含了我们所需的变更信息,但是,每个版本的《What"s New》里信息太多了,这种没有特定目标的搜索,只会费时费力。
  假如要跨多个版本进行比较的话,比如 3.12 与 3.10 间的差异、或者未来的 3.x 跟现在的 3.11 比较,这个方法就更不好用了吧!
  在 3.10 版本之前,想要获知标准库的变化情况,确实不太方便。但是,自 3.10 起,Python 提供了一个非常便捷的方法: sys.stdlib_module_names  !
  官方文档的描述:
  来源:https://docs.python.org/zh-cn/3/library/sys.html?#sys.stdlib_module_names
  简单查看下它的内容:
  如上可见, sys.stdlib_module_names   返回的是一个 frozenset 类型的对象,其元素是所有标准库的名称。
  有了详细的标准库清单后,我们就可以通过以下的步骤,比较出不同 Python 版本间的差异啦:
  (1)获取旧版本的标准库(比如 3.10.0),序列化后存储到文件/数据库中 >>> import sys >>> import pickle >>> with open("libs", "wb") as f: ...     pickle.dump(sys.stdlib_module_names, f) ...
  (2)获取新版本的标准库(比如 3.11.0),与旧版本的标准库进行比较 >>> import sys >>> import pickle >>> with open("libs", "rb") as f: ...     old_libs = pickle.load(f) ... >>> sys.stdlib_module_names - old_libs frozenset({"_typing", "_scproxy", "_tokenize", "tomllib"}) >>> old_libs - sys.stdlib_module_names frozenset({"binhex"})
  从以上示例中,我们可以得知,3.11 相比于 3.10 增加了 _typing   、_scproxy  、_tokenize   以及 tomllib  ,同时它也减少了一个binhex   。
  简简单单几行代码,这种方法比翻阅繁杂的文档要便捷且准确得多了。
  值得注意的是, sys.stdlib_module_names   是 3.10 版本的新特性,在它之前,有一个相似的sys.builtin_module_names   ,但它返回的只是被解释器使用到的内置模块:
  那么,除了上文提到的获知 Python 标准库删减情况的用途之外,这个新特性还有什么用处呢?换句话说, Python 官方为什么突然新增了 sys.stdlib_module_names   这项功能呢?
  原文链接:https://mp.weixin.qq.com/s/NoZniWQU3dUA_0TmZ2kHzw
  其实,社区中有一个三方库 stdlib-list   ,可用于获取部分 Python 版本(2.6-2.7;3.2-3.9)的标准库清单。这个库的作者在文档中提到了他的诉求,也提到其它开发者有着同样的诉求:
  开发了  sys.stdlib_module_names   这项功能的核心开发者 Victor Stinner 也总结了几个使用场景:当计算项目的依赖关系时,忽略标准库中的模块:https://github.com/jackmaney/pypt/issues/3 当监测第三方代码的执行时,忽略标准库,使用监测工具的 --ignore-module  选项:https://stackoverflow.com/questions/6463918/how-can-i-get-a-list-of-all-the-python-standard-library-modules在格式化 Python 代码文件时,对 import 的标准库模块进行分组。isort 库包含了标准库的列表,它依据 Python 在线文档生成了每个版本的标准库清单:https://github.com/PyCQA/isort/tree/develop/isort/stdlibs
  从这些使用场景来看, sys.stdlib_module_names   的作用还真是不小。另外,在写作本文的时候,我从 CPython 的 Issue #87121 中发现,著名的机器学习库pytorch   也需要这项功能。
  pytorch   曾经硬编码了每个 Python 版本的标准库列表,代码冗长,现在已经适配成使用新的方法 ,大大方便了后续的维护:
  11 月 15 日时,Python 3.12 alpha 2 版本发布了,这个版本开始移除大量过时的废弃的内容(标注库、标准库的子模块、类和函数等)。感兴趣的同学,可以用本文介绍的"冷知识",去看看到底出现了哪些变化啦~

为什么有人说王莽是穿越者?你看他妻子穿的是啥在中国历史上,王莽是一位篡位者。西汉哀帝驾崩,王莽架空了汉平帝,成功篡取了西汉政权,改国号为新。但是,王莽建立的新朝是不被中国历史承认的。后世坊间流传着王莽是穿越者的说法,这种说法湖北古井挖出失传古籍,颠覆秦国历史,终还暴君秦始皇清白!剧秦美新曾言懿律嘉量,金科玉条。从秦国到秦朝,严苛法治使得秦始皇背负暴君骂名,但当睡虎地秦墓出土后,秦始皇却得以沉冤昭雪,洗刷从前的负面形象。在中国古代社会封建历史中,秦朝所起到的美媒评来自NCAA的十大球星!安东尼第9罗斯第4浓眉哥第2随着疯狂三月的到来,NCAA再一次成为球迷关注的焦点,NBA中也有大量球员来自NCAA,为此,美媒clutchpoints评选出了NBA中来自NCAA的十大球星,其中安东尼第9,罗东京复仇者2真人电影首弹角色预告4月21日上映人气漫画时空穿越题材东京复仇者的真人电影续篇东京复仇者2即将分为前后二部曲制作,前篇4月21日,后篇6月30日上映,日前官方再次公布了首弹角色预告,展示了主要角色武道与千冬,一起来策划放出消息,老牌英雄后续将优化,新英雄增加非人类角色你一定很好奇,最近几个赛季上线的新英雄都是官方原创,不再借助中国四大名著中的人物,亦或者是一些神话人物。新出的英雄故事背景并不复杂,目的是方便玩家了解英雄。古代的神话人物,玩家无需原神3。7版本角色情报预测抽了绫华那往后的角色怎么办?原神3。5版本抽取现状最近在原神中大家最关心的莫过于角色的复刻了吧,3。5版本复刻的神里绫华和申鹤估计很多小伙伴都在犹豫到底是抽还是不抽,主要是按照剧情走向和爆料信息来看,3。6版名人堂中锋,尼克斯传奇队长威利斯里德去世NBA名人堂成员,尼克斯传奇中锋威利斯里德去世享年80岁。尼克斯在声明中写道尼克斯悲痛地宣布,我们敬爱的队长威利斯里德去世。我们在哀悼的同时,我们会继承他留下的精神无与伦比的领导力探讨美国南北战争期间,黑人在军队和社会中扮演的角色文字悠悠编辑悠悠引言在19世纪60年代的美国南北战争中,黑人在军队和社会中扮演了重要的角色。在这场战争中,黑人自愿加入联邦军队和南方军队,为他们所支持的一方而战。尽管黑人在军队中遭玩3A游戏大作,电脑如何升级硬件,性能提升最大!前言近几年发布的3A游戏要求配置越来越高,发现自己的旧电脑玩游戏越来越吃力,如果你预算有限,不能一次更换多个硬件,那该如何升级电脑硬件才能发挥最好的游戏性能。显卡首先要考虑换的就是曼联重回巅峰,滕哈格431阵型引领英超新革命!曼联教练埃里克滕哈格的4231阵型在曼联的执行有了显著的成效。他们现在已经成功晋级欧洲冠军联赛,并且在英超联赛中排名第三。虽然在赛季初并没有被看好夺冠,但是滕哈格的战术风格和指导原曝中超按16支球队规模组织竞赛部已初步拟定赛程北京时间3月22日消息,昨晚BRTV北京体育休闲频道播出了最新一期的足球100分节目,本期节目邀请到了北京青年报记者肖赧以及前国安球员王长庆,两位嘉宾与主持人魏翊东一起畅聊了中超的
中金调研新兴商业模式破解充电桩两难困境文张霆2020年3月,新能源充电桩被列入新基建七大领域之中,充电桩行业随之迎来了狂欢。据中国充电联盟公布的数据,2022年110月,充电基础设施增量为209。1万台,其中公共充电桩人命何以关天?由刑名体系窥清王朝统治的底层逻辑刑部在清代主持几乎一切法律事务,其职能囊括了现代意义上的立法司法司法行政等各个方面的工作。所谓司法,是完全隶属于现代法学范畴内的概念,具备独立于立法与行政的内涵。但对于传统中国来说拜登最美孙女嫁人了!戴10米面纱太惊艳,小3岁新郎高大帅气周六,美国总统乔拜登的长孙女娜奥米拜登戴着长达10米的面纱,穿过白宫南草坪,走向一个满是灌木和鲜花的祭坛,于亲朋好友的见证下,交换了誓言和戒指,与相恋多年的男友彼得尼尔成为了正式夫图解一致性哈希算法,看这一篇就够了近段时间一直在总结分布式系统架构常见的算法。前面我们介绍过布隆过滤器算法。接下来介绍一个非常重要也非常实用的算法一致性哈希算法。通过介绍一致性哈希算法的原理并给出了一种实现和实际运2023年,延迟退休有望遍地开花?深度解析16字原则,不再心慌2023年,延迟退休会大面积落地吗?国家提出的16字原则到底隐藏着什么内涵?假如明年大面积落地,伤害到的是哪部分人群?时光飞逝,秋去冬来,转眼之间我们已经来到了2022年的尾声,2治好你的强迫症,火箭军某部队列会操来啦!队列会操展风采强化意识促提高近日火箭军某部组织开展队列会操活动比作风比动作比标准展示官兵良好的精神风貌进一步提升部队凝聚力与战斗力话不多说一组高清大图直击队列会操现场脚步铿锵有力动层次越高的人,越不会做这三件事人生在世,总是难以避免与人打交道。为人处世,也就成了人生的必修课。层次越高的人,往往都深谙为人处世之道,懂得留有余地,懂得尊重他人。这样的人通常不会做以下三件事。最后一件事,也是我文案馆吵架不带脏字头条创作挑战赛解气疏解心情的句子1我本无心,何来伤心。2我是我,不必讨你喜。3我的世界里,我就是规矩。4多做可能的,别扯没用的。5在我的世界里,没有抱歉。6你什么货色,我就什么脸色人生迷惑?你该多听听内心的声音现在的我们,有多忙碌呢?早上匆匆忙忙的起床上班,忙忙碌碌的一天工作,下了班,吃了晚饭后应该是闲暇的吧,可好像又被手机支配,拿起手机玩到半夜,只是偶尔睡前,会忽然想到,又是疲惫又空虚马斯克和中企再联手,一体化压铸颠覆汽车制造,中企技术领先全球特斯拉又降价了,这背后竟然还有中国企业的功劳?是的,你没看错。特斯拉这次降价的幅度不少,原因也比较多,但是有一项科技也立了功,那就是一体化压铸技术。2020年,特斯拉的超级工厂装配NLP技术在小米语音助手中的应用导读本次分享题目为语音助手中的NLP技术应用与研究,主要介绍下面三个方面ConversationalAIAgentXiaoAIModelPipelineSelfLearning分享