在[tool.poetry.extras]
中添加pyproject.toml
部分之后,Poetry显示以下警告,例如在安装时:
警告:锁定文件不是pyproject.toml中的最新更改。您可能会过时的依赖关系。运行更新以更新它们。
那很好,但是如果我运行poetry update
,它将升级我的依赖关系,这不是我现在想要的。如果我改为运行poetry lock
,它仍然会升级依赖关系。
抱歉,没有提供可复制的示例,生成具有过时依赖关系的poetry.lock文件非常棘手。我现有的一个太大了,无法在此处发布。
更新:为此问题打开了sdispater/poetry#1614
答案 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没有提到它更新了依赖关系。这对我来说可以删除日志输出中的警告。