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

Poetry 1.1.11执行install报'Link'无name属性,降级后仍触发JSONDecodeError

问题成因
  • 你最早遇到的AttributeError: 'Link' object has no attribute 'name'是Poetry 1.1.x系列的已知bug,触发原因是PyPI上游调整了包元数据的返回结构,1.1.11及更低版本的Poetry内置的元数据解析逻辑没有适配该变更,导致executor.py中对Link对象的属性调用失败。
  • 降级后出现的JSONDecodeError: Expecting value: line 1 column 1 (char 0)通常由三类原因导致:一是降级过程中没有清理干净全局Poetry缓存、虚拟环境的残留文件,新旧版本逻辑冲突;二是你配置的PyPI源网络不通,返回了空响应;三是1.1.7版本的Poetry不兼容你项目pyproject.toml中使用的新语法。
修复步骤
  1. 彻底卸载旧版本Poetry并清理残留
    • 如果你是通过pip安装的Poetry,执行:pip uninstall poetry poetry-core -y
    • 如果你是通过官方脚本安装的,执行内置卸载命令:poetry self uninstall
    • 手动删除全局残留目录:rm -rf ~/.local/share/pypoetry ~/.cache/pypoetry
    • 重启终端后执行poetry --version确认无输出,代表卸载完成
  2. 安装已修复该bug的稳定版本
    直接安装1.8.x系列稳定版即可,执行:pip install poetry==1.8.3
    安装完成后验证版本:poetry --version
  3. 清理项目层面的残留文件
    进入你的项目根目录,执行:
    • rm -rf poetry.lock .venv
    • 如果你配置了第三方PyPI源,先确认源地址可正常访问,也可临时切换为官方源测试,在pyproject.toml中添加以下配置:
      [[tool.poetry.source]]
      name = "pypi"
      url = "https://pypi.org/simple/"
      priority = "default"
      
  4. 重新执行依赖安装流程
    • 如果不需要升级项目依赖的版本,只重新生成符合新版本Poetry规范的lock文件,执行:poetry lock --no-update
    • 执行安装命令:poetry install
异常排查

如果执行安装时仍然出现JSONDecodeError,先执行poetry cache clear --all pypi清理所有包缓存,再检查WSL的网络连接是否正常,确保可以访问配置的PyPI源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:15:06