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

Python构建时Manifest.in已指定的yaml文件被忽略如何解决?

Python打包时yaml资源文件被忽略的解决方案

你当前的MANIFEST.in配置本身规则已经覆盖了yaml文件的包含要求,问题通常出在打包工具的配套配置缺失,按以下步骤排查修复即可:

1. 开启资源文件包含开关

MANIFEST.in仅负责将文件纳入源码包(sdist),如果没有开启配套配置,构建wheel包或安装时非.py文件会被默认过滤:

  • 若使用传统setup.py配置:在setup()函数中添加参数include_package_data=True
  • 若使用setup.cfg配置:在[options]块下添加配置项include_package_data = True
  • 若使用PEP 621标准的pyproject.toml配置:在[tool.setuptools]块下添加配置项include-package-data = true

2. 确认子目录为可识别的包结构

检查mypackage/resources目录下是否存在空的__init__.py文件,缺少该文件时setuptools不会将该目录识别为包的子模块,内部的资源文件会被直接忽略。

3. 冗余配置清理(可选)

你当前MANIFEST.in里的recursive-include mypackage *.yaml已经递归包含了mypackage下所有子目录的yaml文件,单独的include mypackage/resources/about.yaml属于重复规则,可直接删除不影响效果。

验证方法

构建完成后执行以下命令验证文件是否被正确打包:

  • 检查源码包:tar tf dist/<你的包名+版本号>.tar.gz
  • 检查wheel包:unzip -l dist/<你的包名+版本号>.whl

内容的提问来源于stack exchange,提问作者Der edle weiße Ritter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:15:03