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

pyproject.toml中[tool.setuptools.packages]下find = {}的作用是什么?

关于pyproject.toml中[tool.setuptools.packages].find = {}的功能解析

[tool.setuptools.packages]下的find = {}是setuptools的包自动发现配置项,核心作用是明确告诉setuptools自动识别并打包项目里符合规范的Python包。

具体细节:

  • Python包的标准定义是包含__init__.py的文件夹(新版Python也支持无__init__.py的命名空间包),这个配置会让setuptools从项目根目录开始递归扫描,把所有符合条件的包都纳入打包范围。
  • 你发现有无该条目都能正常运行,是因为setuptools在没有明确指定packages配置时,默认会触发自动包发现逻辑。但显式写出find = {}是更稳妥的做法——不同版本的setuptools默认行为可能存在细微差异,主动声明能避免环境不一致导致的打包问题。
  • 如果需要自定义包发现规则,还可以在find的字典里添加参数,比如:
    [tool.setuptools.packages.find]
    where = ["src"]  # 指定只在src目录下搜索包
    exclude = ["tests.*", "docs.*"]  # 排除测试和文档相关的包
    include = ["*.py"]  # 指定要包含的文件类型
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:45:55