Cla*_*dio 6 python python-poetry
将[tool.poetry.extras]部分添加到 后pyproject.toml,Poetry 会显示以下警告,例如在安装时:
警告:锁定文件不是最新的 pyproject.toml 中的最新更改。您可能会得到过时的依赖项。运行更新以更新它们。
这很好,但是如果我运行poetry update它会升级我的依赖项,这不是我目前想要的。如果我poetry lock改为运行,它仍然会升级依赖项。
很抱歉没有提供可重现的示例,生成具有过时依赖项的诗歌.lock 文件非常棘手。我现有的一个太大了,不能在这里张贴。
更新:为此问题打开了sdispater/poetry#1614
slh*_*hck 12
从 1.1.2(或更早?)开始,现在有一个选项:
poetry lock --no-update
Run Code Online (Sandbox Code Playgroud)
这使得可以在pyproject.toml不升级依赖项的情况下从锁定文件中删除依赖项并更新锁定文件。
请注意,该行为将在 v2.0 中更改。
目前(从版本开始1.0.0b6)似乎没有任何 Poetry 命令可以更新锁定文件而不升级依赖项。
但是,如果您的项目有一些最新的依赖项foo,您可以通过调用以下命令来解决此限制:
poetry update foo
Run Code Online (Sandbox Code Playgroud)
这将保留foo当前版本(因为它已经是最新版本),并且也不会触及任何其他依赖项。但它会将锁定文件与pyproject.toml.
在我自己的情况下,此命令将该[extras]部分添加到锁定文件并更新元数据内容哈希,而不涉及任何其他内容。锁定文件现在是最新的,警告消失了。
更新:
更好的解决方法是在依赖树之外添加和删除一个包,例如insecure-package:
poetry add insecure-package && poetry remove insecure-package
Run Code Online (Sandbox Code Playgroud)
这样做更好的原因之一是poetry update您需要传递与最初使用的选项完全相同的选项。有关问题中提到的 GitHub 问题的更多详细信息。
| 归档时间: |
|
| 查看次数: |
9669 次 |
| 最近记录: |