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

如何通过pyproject.toml将Jinja模板纳入Python包发行版

用pyproject.toml将Python包内的template目录纳入发行版

如果你不想依赖MANIFEST.in,仅通过pyproject.toml实现把mypack/template目录(含所有子文件、子目录)打包进发行版,可按以下两种方式配置:

方式一:配置package-data(通用写法)

若你的包使用setuptools作为构建后端,在pyproject.toml中添加以下配置:

[project]
# 保留你原有的项目名称、版本等配置

[tool.setuptools.package-data]
# 递归匹配mypack下template目录的所有层级文件和子目录
mypack = ["template/**/*"]

这里的**/*是递归通配符,会匹配template目录下所有子目录里的任意文件,不受后缀名限制。

方式二:启用include-package-data(更简洁)

也可直接开启自动包含包内数据文件的功能,同时明确指定要包含的目录:

[project]
# 保留原有项目配置

[tool.setuptools.include-package-data]
# 明确包含mypack.template目录
mypack.template = true

关键前提

确保你的pyproject.toml已指定正确的构建后端,示例配置如下:

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

注意:递归通配符**需要setuptools 61.0及以上版本支持,请保证依赖的setuptools版本达标。

验证方法

配置完成后,执行python -m build生成wheel或sdist包,解压后检查mypack/template目录及其所有内容是否被正确包含在内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 01:15:00