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

setuptools.packages.find排除全局模式失效:conftest.py未被排除

问题原因

[tool.setuptools.packages.find]下的exclude参数仅作用于Python包(即包含__init__.py的目录),而非单个.py文件。你配置的*conftest是在匹配名为conftest的包,但你的conftest.py是单个文件,因此这条规则不会生效。

解决方案

根据conftest.py的位置,选择对应的配置方式:

情况1:conftest.py在包目录内(如Foo/或Foo/tests/)

使用exclude-package-data配置排除包内的特定文件:

[tool.setuptools.packages.find]
exclude = ['Foo*tests']
include = ['Foo*']

# 排除所有包下的conftest.py
[tool.setuptools.exclude-package-data]
"*" = ["conftest.py"]

如果只想排除特定子包内的文件(比如Foo/tests/conftest.py),可以指定包名:

[tool.setuptools.exclude-package-data]
"Foo.tests" = ["conftest.py"]

情况2:conftest.py在非包目录(如项目根目录)

直接在[tool.setuptools]下添加全局文件排除规则:

[tool.setuptools]
exclude = ["conftest.py"]

[tool.setuptools.packages.find]
exclude = ['Foo*tests']
include = ['Foo*']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:25:59