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

如何让Python包安装时包含模板等非代码文件?

解决Python包安装时模板文件未被纳入的问题

问题背景

你的仓库目录结构如下:

report:
  report.py
  template.dat
  template_testline.dat

在pyproject.toml中仅配置了:

[tool.setuptools]
packages = [ "report" ]

安装后发现只有report.py被放到了site-packages的report目录下,模板文件template.dat和template_testline.dat未被包含。

解决方案

Setuptools默认只会自动包含Python源码文件(.py、.pyc等),要让非Python文件也被打包安装,可通过以下两种方式配置:

方式一:用package_data指定需包含的文件

在pyproject.toml中添加package_data配置,明确指定report包下的模板文件:

[tool.setuptools]
packages = [ "report" ]
package_data = {
    "report": ["template.dat", "template_testline.dat"]
}

如果后续有同类型模板文件,也可用通配符简化:

package_data = {
    "report": ["*.dat"]
}

方式二:用include_package_data配合MANIFEST.in

  1. 先在pyproject.toml中开启自动包含配置:
[tool.setuptools]
packages = [ "report" ]
include_package_data = true
  1. 在项目根目录创建MANIFEST.in文件,写入文件匹配规则:
include report/template.dat
include report/template_testline.dat

同样支持通配符批量匹配:

include report/*.dat

验证

修改配置后,重新执行安装命令(如pip install .),再查看site-packages下的report目录,即可看到模板文件已被包含。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 18:22:33