为什么 setup.cfg 在 Python 打包教程中多行设置package_dir?



我正在学习开发Python包的教程。在本教程中,他们展示了如何设置一个基本的setup.cfg文件,如下所示:

[metadata]
name = example-pkg-YOUR-USERNAME-HERE
version = 0.0.1
author = Example Author
author_email = author@example.com
description = A small example package
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/pypa/sampleproject
project_urls =
Bug Tracker = https://github.com/pypa/sampleproject/issues
classifiers =
Programming Language :: Python :: 3
License :: OSI Approved :: MIT License
Operating System :: OS Independent
[options]
package_dir =
= src
packages = find:
python_requires = >=3.6
[options.packages.find]
where = src

我的问题是关于这一部分的。

package_dir =
= src

我不明白为什么这被拉长到多行。当我用一行package_dir = src替换这两行时,当我尝试构建时,我发现以下错误。

distutils.errors.DistutilsOptionError: Unable to parse option value to dict: src
ERROR Backend subproccess exited when trying to invoke get_requires_for_build_sdist

多行或赋值操作符的明显必要性是怎么回事?

确保= src不是未缩进的。它应该总是看起来像:

[options]
package_dir =
= src

package_dir将包映射到它们的文件夹,而= src被解析为{'': 'src'}到Python字典。= src表示./src包含您的发行版的所有包

你可以在同一页面找到更多信息

package_dir是包名和目录的映射。空包名代表"根包"——项目中包含包的所有Python源文件的目录——所以在这种情况下,src目录被指定为根包。

package_dir =是配置参数

= src表示包名为空,因此

空包名表示"根包"

相关内容

  • 没有找到相关文章

最新更新