内容提要
PEP 794 提议在 Python 的核心元数据中增加一个名为 Import-Name 的字段,以记录项目安装后的导入名称,从而解决项目名称与导入名称不匹配的问题,提升工具推荐的准确性和用户体验。该字段将被添加到 pyproject.toml 的 [project] 表中,核心元数据版本更新至 2.5。
关键要点
-
PEP 794 提议在 Python 的核心元数据中增加 Import-Name 字段,以记录项目安装后的导入名称。
-
该字段将解决项目名称与导入名称不匹配的问题,提升工具推荐的准确性和用户体验。
-
Import-Name 字段将被添加到 pyproject.toml 的 [project] 表中,核心元数据版本更新至 2.5。
-
目前 Python 打包中没有要求项目名称与可导入名称匹配,导致工具无法准确推荐项目。
-
此提议将允许项目所有者指定项目提供的最高级别导入名称,确保信息准确。
-
Import-Name 字段为可重复使用字段,必须与项目提供的所有 sdists 和 wheels 一致。
-
项目所有者应提供准确的信息,并且不应过滤掉他们认为是私有的名称。
-
工具在使用这些元数据时应将其视为潜在不准确,做出决策时需谨慎。
-
项目所有者应被教育如何记录其项目提供的命名空间,用户不必了解这些新元数据的细节。
-
PEP 794 还拒绝了其他方案,如重新利用已弃用的 Provides 字段。
延伸解读
Import-Name 字段的重要性
PEP 794 提出的 Import-Name 字段将显著改善 Python 包管理的准确性。通过明确项目的导入名称,开发者和工具能够更轻松地识别和推荐合适的项目,减少因名称不匹配而导致的困惑。这一变化将提升用户体验,尤其是在使用代码编辑器时,能够更准确地满足导入需求。
项目所有者的责任
项目所有者在提供 Import-Name 信息时需确保准确性和完整性。即使是他们认为私有的名称,也应当记录在案,以避免潜在的命名空间冲突。此举不仅有助于工具的推荐准确性,也能防止用户在使用过程中遇到问题。
工具使用时的谨慎
尽管 Import-Name 字段旨在提供准确的导入信息,但工具在使用这些元数据时仍需保持谨慎。由于信息可能存在不准确的风险,开发者在基于这些数据做出决策时,应考虑到潜在的恶意行为和误导性信息。
延伸问答
PEP 794 的主要目的是什么?
PEP 794 的主要目的是在 Python 的核心元数据中增加一个 Import-Name 字段,以记录项目安装后的导入名称,从而解决项目名称与导入名称不匹配的问题。
Import-Name 字段将如何影响 Python 包的使用?
Import-Name 字段将提升工具推荐的准确性,帮助用户更容易找到与导入名称匹配的项目,从而改善用户体验。
项目所有者在提供 Import-Name 信息时需要注意什么?
项目所有者必须提供准确的信息,并且不应过滤掉他们认为是私有的名称,以确保信息的完整性和准确性。
PEP 794 如何解决当前 Python 打包中的问题?
PEP 794 通过引入 Import-Name 字段,允许项目所有者明确指定项目的导入名称,从而解决项目名称与可导入名称不匹配的问题。
Import-Name 字段的格式是什么?
Import-Name 字段是一个可重复使用的字段,包含项目提供的可导入名称,必须与项目提供的所有 sdists 和 wheels 一致。
PEP 794 拒绝了哪些其他方案?
PEP 794 拒绝了重新利用已弃用的 Provides 字段等其他方案,因为这些方案无法准确提供项目的导入名称信息。