使用pip安装自制Python包时触发TOMLDecodeError:无法覆盖值
解决pyproject.toml的TOMLDecodeError问题
错误原因
pip._vendor.tomli.TOMLDecodeError: Cannot overwrite a value 是因为你的pyproject.toml文件第13行21列位置存在重复定义的键——在同一个TOML section(比如[project]、[tool.setuptools])里,同一个键被重复赋值了两次。
修复步骤
- 打开项目根目录的
pyproject.toml文件,定位到第13行 - 检查该行及附近的配置,找到重复定义的键:
- 比如可能在
[project]下重复写了name = "WalshPulseSeq"两次 - 或者
dependencies列表被重复声明 - 也可能是
[tool.setuptools.packages.find]下的where被重复赋值
- 比如可能在
- 删除其中一个重复的键值对,保留正确的那一个
- 保存文件后,重新执行安装命令:
python -m pip install -e .
额外检查建议
- 确保pyproject.toml的语法符合TOML规范:同一个section内的键必须唯一,数组/列表的格式正确(用方括号包裹,逗号分隔)
- 如果你的项目同时有
setup.py和setup.cfg,避免在多个配置文件中重复定义相同的包信息(比如包名、版本),建议统一用pyproject.toml管理核心配置
内容的提问来源于stack exchange,提问作者CuriousMind
相关产品推荐
相关产品推荐

