我们试图在一个项目中合并和旧分支,当试图建立一个码头形象,诗歌似乎失败了,因为一些原因,我不明白。
我对诗歌不太熟悉,因为到目前为止,我只对依赖项使用了requirements.txt,所以我对正在发生的事情有些费解。
我得到的错误(在服务器上构建映像的剧本的一部分)是:
"Installing dependencies from lock file",
"",
"Package operations: 16 installs, 14 updates, 0 removals",
"",
" • Updating importlib-metadata (4.8.3 -> 2.0.0)",
" • Updating pyparsing (3.0.6 -> 2.4.7)",
" • Updating six (1.16.0 -> 1.15.0)",
"",
" RuntimeError",
"",
" Retrieved digest for link six-1.15.0.tar.gz(sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259) not in poetry.lock metadata ['30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259', '8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced']",
"",
" at /usr/local/lib/python3.7/dist-packages/poetry/installation/chooser.py:115 in _get_links",
" 111│ ",
" 112│ if links and not selected_links:",
" 113│ raise RuntimeError(",
" 114│ \"Retrieved digest for link {}({}) not in poetry.lock metadata {}\".format(",
" → 115│ link.filename, h, hashes",
" 116│ )",
" 117│ )",
" 118│ ",
" 119│ return selected_links",
"",
"",
" RuntimeError",
"",
" Retrieved digest for link pyparsing-2.4.7.tar.gz(sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1) not in poetry.lock metadata ['c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1', 'ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b']",
"",
" at /usr/local/lib/python3.7/dist-packages/poetry/installation/chooser.py:115 in _get_links",
" 111│ ",
" 112│ if links and not selected_links:",
" 113│ raise RuntimeError(",
" 114│ \"Retrieved digest for link {}({}) not in poetry.lock metadata {}\".format(",
" → 115│ link.filename, h, hashes",
" 116│ )",
" 117│ )",
" 118│ ",
" 119│ return selected_links",
"",
"",
" RuntimeError",
"",
" Retrieved digest for link importlib_metadata-2.0.0.tar.gz(sha256:77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da) not in poetry.lock metadata ['77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da', 'cefa1a2f919b866c5beb7c9f7b0ebb4061f30a8a9bf16d609b000e2dfaceb9c3']",
"",
" at /usr/local/lib/python3.7/dist-packages/poetry/installation/chooser.py:115 in _get_links",
" 111│ ",
" 112│ if links and not selected_links:",
" 113│ raise RuntimeError(",
" 114│ \"Retrieved digest for link {}({}) not in poetry.lock metadata {}\".format(",
" → 115│ link.filename, h, hashes",
" 116│ )",
" 117│ )",
" 118│ ",
" 119│ return selected_links"
]
}
如果您注意到,对于所有3个包,检索的摘要实际上都在诗歌锁文件的元数据部分的摘要列表中。我们的猜测是,这个锁文件可能是由旧版本的诗歌生成的,不再有效。也许应该提到哈希方法(例如,检索到的摘要是sha256,但与之比较的方法没有指定)?另一件奇怪的事情是,诗歌不是安装在文档文件中,而是似乎达到了这个程度,然而,我真的很好奇这是如何发生的。
任何洞察力都会非常感激(甚至任何与更多信息的链接)!
非常感谢您的时间!(如果你觉得这样做不够的话,可以随时索取更多信息!)
干杯!
发布于 2022-07-14 12:55:15
当我自己处理这个问题时,它已经通过使用更新的诗歌版本重新创建锁文件来修复了。如果您能够查看.toml文件,我建议删除这个锁文件,然后运行poetry install
来创建一个新的锁文件。
发布于 2022-09-06 10:45:01
在我的例子中,我使用pypi-server
。默认情况下,它使用摘要方法md5
。您可以通过CMD参数来更改它。例如,我使用了docker映像,我的Dockerfile如下所示:
FROM pypiserver/pypiserver:latest
ENTRYPOINT ["/entrypoint.sh", "run", "--hash-algo", "sha256"]
希望能帮助那些寻找这个问题的人。
https://stackoverflow.com/questions/71558637
复制相似问题