我正在学习开发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
表示包名为空,因此
空包名表示"根包"