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

如何在pyproject.toml中筛选Python包构建所需文件?

解决Python包构建时包含不必要文件的问题

问题分析

你使用python -m build构建包时,.gitignore和.github目录被错误纳入源码包(tar.gz),原因是setuptools默认会扫描项目根目录下的多数文件,若未明确排除,这类辅助文件会被自动加入构建产物。

解决方案

方案1:用MANIFEST.in精确管控文件

在项目根目录创建MANIFEST.in文件,写入以下内容:

# 保留必要的根目录文件
include LICENSE README.rst
# 包含mypkg包下所有Python文件
recursive-include mypkg *.py
# 排除不需要的文件和目录
exclude .gitignore
prune .github

方案2:修改pyproject.toml添加排除规则

直接在现有pyproject.toml中追加全局排除配置,无需额外创建文件:

[build-system]
requires = [
    "setuptools >= 65.5.1",
    "setuptools-scm",
    "wheel"
]
build-backend = "setuptools.build_meta"

[tool.setuptools.package-data]
"*" = [
    "README.rst",
    "LICENSE"
]

[tool.setuptools.packages.find]
include = [
    "mypkg.*"
]

# 新增排除规则
[tool.setuptools]
exclude = [".gitignore", ".github/**"]

验证效果

执行清理构建命令,确保生成的包仅包含必要文件:

python -m build --clean

解压dist目录下的mypkg-0.0.0.tar.gz,即可看到.gitignore和.github已被移除,SOURCES.txt内容也会符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:18:08