我试图构建一个没有测试文件的库,如这里所描述的https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html .在pyproject.toml
中,我得到了:
[tool.setuptools.packages.find]
include = ['lib*']
exclude = ['^.*tests']
此排除模式正确匹配最后3个元素:
lib
lib.mod1
lib.mod2
lib.utils
lib.mod1.tests
lib.mod2.tests
lib.utils.tests
然而,当我用python -m build
构建并安装结果wheel时,我仍然得到发行版中的3个测试模块。
2条答案
按热度按时间f3temu5u1#
看起来你使用的是正则表达式语法,但这是一个glob/wildmatch模式,而不是正则表达式。
试试这个:
vhmi4jdf2#
除了不受支持的正则表达式语法(参见https://stackoverflow.com/a/72524001/1551810),如果测试文件包含在源代码分发(sdist)中,例如,因为存在包含它们的
MANIFEST.in
,或者因为使用了setuptools-scm包(另请参见https://github.com/pypa/setuptools/issues/3260),则exclude不起作用。如果测试要从wheel中排除,但要包含在sdist中,解决方案是显式禁用
include-package-data
(默认为true
):