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
模块。
如果社区之间有更明确的共识,或者有更强有力的论据表明该提案的好处,则指导委员会愿意重新考虑。
正文完
可以使用微信扫码关注公众号(ID:xzluomor)