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

如何通过setup.cfg为Python包配置数据文件,sdist构建缺失数据如何解决?

问题原因

你配置了include_package_data = True,该参数开启后setuptools会优先读取MANIFEST.in文件定义的非代码文件包含规则,直接忽略[options.package_data]下的配置,导致你指定的*.txt规则没有生效,hello.txt没有被打入发行包。

修复方案

你可以任选以下一种方案修改:

  • 方案1:保留package_data配置,关闭include_package_data
    删除[options]段中的include_package_data = True行即可,你原本写的[options.package_data] * = *.txt规则会正常生效,自动包含所有包目录下的txt文件。
  • 方案2:保留include_package_data配置,新增MANIFEST.in规则
    在项目根目录新建MANIFEST.in文件,写入如下内容:
    include my_package/*.txt
    
    该规则会明确指定将my_package目录下的txt文件纳入发行包。

修改完成后重新执行python -m build --sdist构建,即可在生成的源码包中看到hello.txt文件。

额外检查点

如果修改后仍然不生效,确认你的pyproject.toml中已经正确配置setuptools为构建后端,参考配置如下:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:54:03