如何在使用setuptools的pyproject.toml中包含docs目录?
问题解答:Setuptools自动发现未包含docs目录是否正常及解决方法
这是正常现象吗?
是正常的。Setuptools的自动发现机制默认仅识别Python包/模块(即src目录下的代码结构),以及pyproject.toml中显式指定的README、依赖等配置相关文件。像docs、tests这类非代码目录,不会被自动纳入源码包(sdist)的构建范围。
如何让docs目录被包含进源码包?
有两种常用方式实现,选其一即可:
方式1:使用MANIFEST.in(传统兼容方式)
在项目根目录创建MANIFEST.in文件,添加以下内容:
# 包含docs目录下所有文件(含子目录) recursive-include docs **/* # 可选:同时包含根目录的AUTHORS、LICENSE等文件 include AUTHORS LICENSE
方式2:在pyproject.toml中直接配置(推荐,符合现代配置规范)
在现有pyproject.toml中添加[tool.setuptools.files]配置块,显式指定要包含的文件/目录:
[tool.setuptools.files] include = [ "docs/**/*", "AUTHORS", "LICENSE" ]
配置完成后,重新执行源码包构建命令:
python -m build --sdist
生成的.tar.gz源码包中就会包含docs目录及其中的文件。
内容的提问来源于stack exchange,提问作者Michel Van den Bergh
相关产品推荐
相关产品推荐

