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

Python打包教程中setup.cfg的package_dir为何要分多行设置?

问题核心原因

package_dir本身要求接收字典类型的配置值,而非普通字符串,它的作用是定义「Python包名 → 本地存储目录」的映射规则:

  • 字典的键是Python包的名称,空字符串键是约定的全局匹配规则,代表所有未单独声明的顶层包都遵循该映射
  • 你示例中的= src就是声明空键对应src目录,意思是所有顶层包都从项目根目录下的src文件夹中查找

多行写法的必要性

INI格式的setup.cfg中,字典类型的配置默认要求用多行缩进格式书写:第一行只写配置名+等号换行,后续每一个缩进行对应一条键 = 值的映射条目。
你遇到的特殊写法是因为当前键为空,所以才会出现= src的格式,这种写法的可读性更高,尤其是存在多个包映射规则时优势更明显,示例:

package_dir =
    = src
    custom_utils = third_party/utils
    business_pkg = src/business

单行报错的原因

你直接写package_dir = src时,传入的是单个字符串,不符合字典类型的参数要求,打包工具的解析器尝试把字符串转换为字典失败,就抛出了对应的DistutilsOptionError错误。
如果一定要用单行写法,需要符合字典的声明格式:

package_dir = {"": "src"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:48:02