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

