PEP 582 提案 (Python local packages directory) 被拒绝


Python 指导委员会拒绝了 PEP 582 提案——Python local packages directory,即本地包目录

此 PEP 提议向 Python 添加一种自动识别__pypackages__目录的机制,并优先导入安装在此位置的包,而不是用户或全局站点包。这将避免创建、激活或禁用“虚拟环境”的步骤。当出现时,Python 将使用脚本基目录中的__pypackages__

CPython 核心开发者 Thomas Wouters 在该提案的讨论组中公布了这个消息。

他表示这是指导委员会慎重考虑后的决定,虽然 PEP 的实现看似简单(将另一个目录添加到 sys.path ,类似于程序的目录),但语义上的结果并不立即显现,特别是当与其他方式结合影响模块搜索路径时(虚拟环境、用户-本地安装、PYTHONPATH、.pth 文件、sitecustomize 等)。

总的来说,似乎没有令人信服的论据表明这确实会带来净收益。打包社区之间也存在分歧,新功能没有明确的有益用例。此外, __pypackages__ 或类似解决方案的实验已经可以通过 sys.path 的许多现有自定义机制之一进行,例如 .pth 文件或 sitecustomize 模块。

如果社区之间有更明确的共识,或者有更强有力的论据表明该提案的好处,则指导委员会愿意重新考虑。


相關推薦

2023-07-11

Meta 正致力于推动 Python 项目采纳 PEP 703 提案,以改进 Python 代码的多线程性能。PEP 703 指的是 Making the Global Interpreter Lock Optional in CPython,让全局解释器锁在 CPython 中成为可选。 该提案建议向 CPython 添加构建配置 (--disable-gil),

2023-01-13

年的2022 Python 语言峰会上,开发者 Sam Gross 带来了新提案:删除全局解释器锁 GIL,解放多线程性能。但由于 GIL 历史悠久,许多官方/非官方的 Python 包和模块都深度融合了 GIL 模块,彻底移除 GIL 功能可能会对生态造成影响。

2023-06-28

PDM 刚刚发布了 v2.8.0 首个 Alpha。 PDM 是一个现代的 Python 包管理器,支持 PEP 最新标准。 主要特性 支持 PEP 582,完全不需要虚拟环境。 一个简单且相对快速的依赖解析器,特别是对于大的二进制包发布。 兼容 PEP

2023-10-27

Thomas Wouters 代表 Python 指导委员会宣布:正式接受 PEP 703 提案。 PEP 703(Making the Global Interpreter Lock Optional,让全局解释器锁成为可选),简称 no-GIL,也被称为自由线程 (free-threaded)。 根据提案的描述,CPython 的全局解

2023-08-08

器在跟踪过程中报告 Python 函数名称 根据 PEP 623 提案,删除了 C 语言实现 unicode 对象中被废弃的 `wstr` 和 `wstr_length` 成员 在 `unittest` 模块中,删除了一些长期被废弃的方法和类(它们从 Python 3.1 或 3.2 开始就已被废弃

2023-09-08

器在跟踪过程中报告 Python 函数名称 根据 PEP 623 提案,删除了 C 语言实现 unicode 对象中被废弃的 `wstr` 和 `wstr_length` 成员 在 `unittest` 模块中,删除了一些长期被废弃的方法和类(它们从 Python 3.1 或 3.2 开始就已被废弃

2022-11-17

器在跟踪过程中报告 Python 函数名称 根据 PEP 623 提案,删除了 C 语言实现 unicode 对象中被废弃的 `wstr` 和 `wstr_length` 成员 在 `unittest` 模块中,删除了一些长期被废弃的方法和类(它们从 Python 3.1 或 3.2 开始就已被废弃

2023-01-12

器在跟踪过程中报告 Python 函数名称 根据 PEP 623 提案,删除了 C 语言实现 unicode 对象中被废弃的 `wstr` 和 `wstr_length` 成员 在 `unittest` 模块中,删除了一些长期被废弃的方法和类(它们从 Python 3.1 或 3.2 开始就已被废弃

2022-05-19

Python 3.9.13 现已发布,这是 Python 3.9 的第 13 个也是最后一个常规维护版本,包含了 166 次 commit。公告指出,从现在开始,3.9 分支将只接受安全修复,并且在 2025 年 10 月之前,这些修复程序将以仅源码的形式发布。 与 3.8 相比

2022-05-19

但自适应解释器的工作范围无法脱离字节码。目前 PEP 659 提案的工作基本完成,但 for 循环和二进制操作的动态优化仍有待完成。 在提速 25% 的同时,Python 3.11 仍有一些需要改善的地方,比如 Python 在 3.11 中的内存消耗与 3.10 中

2023-04-12

CPython 核心开发者 Nathaniel J. Smith 提交了一项新提案: PEP 711 —— PyBI: a standard format for distributing Python Binaries 根据该提案的描述,PyBI (Python Binary) 是用于分发 Python 二进制文件的标准格式。Nathaniel 对 PyBI 的概括如下

2022-11-07

11 相比,3.12 系列的主要新特性: 根据 PEP 623 提案,删除了 C 语言实现 unicode 对象中被废弃的`wstr`和`wstr_length`成员 在`unittest`模块中,删除了一些长期被废弃的方法和类(它们从 Python 3.1 或 3.2 开始就已被废弃)

2022-02-25

换到 GitHub Issues 用于 Bug 跟踪”,该提议引出了 PEP 581 提案,并于 2019年获得批准。 但由于从 Roundup / BPO 到 GitHub 的大迁移涉及的内容太多,在技术上、程序上或法律上都存在复杂难题,因此直到 2022 年大迁移才正式启

2022-09-09

Python 3.10.7 现已发布,这个错误修复版本是为了解决 CVE 问题而提前发布的。因此与同一阶段的 3.10.6(200 次 commit)或者一年前发布周期的同一阶段的 3.9.7(187 次 commit)相比,其包含的修改数量要较少。但是在这个最新的 Python