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

如何在setuptools 65.5.0中实现Python扁平布局的包发现?

实现扁平布局下的单个Python包发现(setuptools 65.5.0)

要在扁平布局(包位于项目根目录)下让setuptools仅发现foo模块,只需在pyproject.toml中添加[tool.setuptools]相关配置,明确指定要打包的包即可。以下是两种可行方案:

方案一:直接列出目标包

在pyproject.toml末尾添加配置块,直接指定要包含的包:

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

方案二:使用包发现并限制范围

如果后续有扩展需求但仍需精确控制,可通过packages.find配置限定仅匹配foo:

[tool.setuptools.packages.find]
include = ["foo"]  # 仅识别foo包
where = "."        # 包所在目录(扁平布局下为项目根目录,可省略)

验证配置

修改完成后,可通过以下方式确认配置生效:

  • 执行python -m build --wheel构建wheel包,解压后检查site-packages目录下是否仅包含foo文件夹
  • 执行pip install -e .完成开发安装,在Python环境中导入foo验证可用性

修改后的完整pyproject.toml示例(以方案一为例):

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

[project]
name = "foo"
authors = [
    #TODO add authors
]
description = "desc"
readme = "README.md"
requires-python = ">=3.11"
keywords = ["keywords"]
license = {text = "MIT"}
classifiers = [
    #TODO add classifiers
]
dependencies = [
    # some deps
]

[project.optional-dependencies]
dev = [
    #TODO add optional dependencies
]

[project.gui-scripts]
foo = "foo:launch"

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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:53:28