是否可在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
相关产品推荐
相关产品推荐

