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

Poetry更新私有依赖my-package报错:哈希值不在poetry.lock中,如何解决?

问题原因与修复方案

错误原因

你在my-package侧的操作流程有误:修改版本号后执行poetry lock --no-update不会重新计算新版本包的哈希值,这个命令仅会保留现有依赖的锁定状态,不会更新当前包自身的哈希信息。当你把这个未正确生成哈希的包发布到私有仓库后,my-project在拉取新版本时,本地poetry.lock中记录的旧哈希与远程包的实际哈希不匹配,从而触发报错。

修复步骤

1. 修正my-package的发布流程

回到my-package项目目录:

  • 确认pyproject.toml中的版本号已正确更新为0.0.10
  • 执行构建命令生成带正确哈希的包文件:
    poetry build
    
  • 重新发布到私有仓库:
    poetry publish
    
  • (可选)若需要更新my-package自身的lock文件,执行poetry lock(不要加--no-update),确保lock文件包含新版本的正确哈希。

2. 修复my-project的依赖拉取问题

进入my-project项目目录:

  • 清除Poetry中my-package的缓存,避免旧缓存干扰:
    poetry cache clear my-package --all
    
  • 尝试重新更新依赖:
    poetry update my-package
    
  • 如果上述命令仍报错,删除poetry.lock文件后重新安装:
    rm poetry.lock
    poetry install
    
    或者直接执行poetry update my-package让Poetry重新生成包含正确哈希的lock文件。

注意事项

  • 私有包发布的正确流程应为:更新版本号 → poetry build → poetry publish,无需手动执行poetry lock --no-update。poetry build会自动计算包文件的哈希值,确保发布的包与后续拉取时的哈希验证一致。
  • poetry lock --no-update仅适用于在不升级依赖版本的情况下修复lock文件格式问题,不适合用于新版本包的发布准备。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:50:01