You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可在pyproject.toml中添加自定义数据?VSCode插件报错求解

向pyproject.toml添加自定义数据的有效方式

Even Better TOML插件的提示是因为你添加的顶级自定义表[custom.metadata]不符合PEP 621等TOML配置规范,按照规范,自定义数据有两种合规的存放方式:

1. 放在[tool]命名空间下

PEP 621明确要求工具相关的自定义配置必须放在[tool]节点下,这样既不会干扰标准项目配置,也能通过插件校验。把你的配置改成这样即可:

[tool.docs.metadata]
docs_name = "GUI Automation for windows"
docs_author = "myname"
docs_copyright = "2023"
docs_url = "https://someurl.readthedocs.io/en/latest/"

2. 放在[project.metadata]下并使用x-前缀

如果你的自定义数据想和项目元数据关联,规范允许在[project.metadata]下添加带x-前缀的自定义字段,示例如下:

[project.metadata]
x-docs-name = "GUI Automation for windows"
x-docs-author = "myname"
x-docs-copyright = "2023"
x-docs-url = "https://someurl.readthedocs.io/en/latest/"

在conf.py中读取数据的示例

用Python 3.11+内置的tomllib读取(低版本可使用tomli包):

import tomllib

# 读取pyproject.toml文件
with open("pyproject.toml", "rb") as f:
    pyproject = tomllib.load(f)

# 读取tool下的自定义数据
docs_meta = pyproject["tool"]["docs"]["metadata"]
docs_name = docs_meta["docs_name"]
docs_author = docs_meta["docs_author"]

# 或者读取project.metadata下的自定义数据
docs_name = pyproject["project"]["metadata"]["x-docs-name"]

如果实在不想调整配置结构,也可以在VSCode设置里关闭Even Better TOML的严格校验,但这种方法会跳过规范检查,可能引发其他问题,不推荐使用。

内容的提问来源于stack exchange,提问作者Amour Spirit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:45:02