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

如何通过setuptools_scm在pyproject.toml中包含非.py文件?

解决setuptools打包时包含非.py文件的问题

你需要在pyproject.toml的[tool.setuptools_scm]部分添加find_files配置,指定要包含的非Python文件模式,就能把extra_file.pem纳入安装包。

修改后的pyproject.toml配置

[build-system]
requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"

[project]
name = "ltpy"
dynamic = ["version"]
readme = "README.md"
requires-python = ">=3.7"
classifiers = [
    "Programming Language :: Python :: 3",
]

dependencies = []

[tool.setuptools_scm]
write_to = "automation/ltpy/_version.py"
root= "../../"
# 添加find_files配置,指定要包含的文件
find_files = [
    "**/*.py",  # 保留所有Python源码文件
    "**/*.pem"   # 匹配所有.pem文件,也可精确指定路径"ltpy/extra_file.pem"
]

[tool.setuptools]
include-package-data = true

[tool.setuptools.packages.find]
where = ["ltpy"]

配置说明

  • find_files是setuptools_scm用来定义打包文件范围的配置项,支持glob通配符:
    • **/*.pem会匹配项目所有子目录下的.pem文件
    • 若只想包含目标文件,直接写相对路径ltpy/extra_file.pem(对应你的文件夹结构,从pyproject.toml所在目录到目标文件的路径)
  • 保留**/*.py是为了确保所有Python源码文件不会被遗漏

验证方法

  1. 清理旧构建产物:删除dist、build目录以及*.egg-info文件夹
  2. 执行python -m build构建包,或直接用pip install .安装到当前环境
  3. 查看Python环境site-packages/ltpy目录,确认extra_file.pem存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:16:25