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
相关产品推荐
相关产品推荐

