自动发现setuptools.build_meta
将不应包含的顶级文件夹包含到 tarball 中。
我们试图建立一个蟒蛇包 https://gitlab.com/octopus-code/postopus with python3 -m build
。我们的项目有一个src布局 https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#src-layout我们正在使用setuptools
作为构建的后端。根据文档,自动发现 https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#automatic-discovery应该弄清楚项目结构并相应地构建 tarball 和wheel。
对于轮子构建,它按预期工作,即只有下面的文件src/...
包含在包装中。另一方面,在 tarball 中还构建了与以下级别处于同一层次结构的顶级文件夹:src
被包含在内。例如,tests
和docs
文件夹,不应包含该文件夹。有趣的是,只有少数文件来自docs
包括在内,但不是全部。
我们试图明确排除tests
and docs
文件夹中的pyproject.toml
, the setup.cfg
和MANIFEST.in
,遵循各自的文档,但没有一个有帮助。
我们在中配置了构建后端pyproject.toml
像这样:
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
...
我们没有setup.py
和我们的setup.cfg
仅包含flake8
规格。
我们正在使用setuptools-67.1.0
,我们尝试了 python 版本 3.8、3.9 和 3.10。我们在 Ubuntu 20.04 和运行 conda 3.8.13 的 Debian 11 上进行了尝试。
可以看到 tarball 和轮子here https://pypi.org/project/postopus/#files.