如何在不升级依赖关系的情况下更新诗歌的锁定文件?

时间:2019-11-20 18:56:14

标签: python python-poetry

[tool.poetry.extras]中添加pyproject.toml部分之后,Poetry显示以下警告,例如在安装时:

  

警告:锁定文件不是pyproject.toml中的最新更改。您可能会过时的依赖关系。运行更新以更新它们。

那很好,但是如果我运行poetry update,它将升级我的依赖关系,这不是我现在想要的。如果我改为运行poetry lock,它仍然会升级依赖关系。

抱歉,没有提供可复制的示例,生成具有过时依赖关系的poetry.lock文件非常棘手。我现有的一个太大了,无法在此处发布。

更新:为此问题打开了sdispater/poetry#1614

3 个答案:

答案 0 :(得分:2)

从1.1.2(或更早版本?)开始,现在有一个选项:

poetry lock --no-update

这使得可以从pyproject.toml删除依赖性并更新锁定文件而无需升级依赖性。

请注意,行为will be changed in v2.0

答案 1 :(得分:1)

目前(自1.0.0b6版起)似乎没有任何Poetry命令可在不升级依赖关系的情况下更新锁定文件。

但是,如果您的项目具有最新的依赖关系foo,则可以通过调用以下命令来解决此限制:

poetry update foo

这将使foo保持当前版本(因为它已经是最新版本),并且也不会涉及任何其他依赖项。但是它将使锁定文件与对pyproject.toml的任何更改同步。

在我自己的情况下,此命令将[extras]部分添加到锁定文件并更新了元数据内容哈希,而没有涉及其他任何内容。锁定文件现在是最新的,警告消失了。

答案 2 :(得分:0)

不确定poetry lock为何更新。 documentation没有提到它更新了依赖关系。这对我来说可以删除日志输出中的警告。