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

Setuptools技术咨询:能否用pyproject.toml替代Manifest.in文件?

关于Setuptools用pyproject.toml替代Manifest.in的问题

是的,Setuptools支持通过pyproject.toml中的配置替代Manifest.in,来指定sdist分发包需要包含的文件。

具体配置方式

1. 自定义sdist文件集合

在pyproject.toml中添加[tool.setuptools.sdist]区块,通过include和exclude字段精确控制文件:

[tool.setuptools.sdist]
# 包含指定文件/目录,支持通配符
include = [
    "docs/*.md",
    "examples/**/*.py",
    "LICENSE",
    "README.rst"
]
# 排除指定文件/目录,优先级高于include
exclude = [
    ".gitignore",
    "tests/**/*",
    "*.pyc",
    "__pycache__/"
]

2. 自动包含包内资源文件

如果需要自动包含Python包目录下的非代码资源文件(如配置文件、静态资源),可以在[tool.setuptools]区块开启自动包含:

[tool.setuptools]
include-package-data = true

开启后,Setuptools会自动识别包内符合规则的资源文件,无需手动逐个声明。

注意事项

  • 该特性要求Setuptools版本≥61.0.0,使用前请确认环境依赖版本
  • 通配符遵循Python pathlib的匹配规则,**用于递归匹配子目录下的所有文件
  • 若同时存在pyproject.toml的sdist配置和Manifest.in,两者规则会被合并,但exclude规则优先级更高;完全替代的话直接删除Manifest.in即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:20:00