Python Poetry:无法找到包的beta版本

8

我正在尝试使用SQLAlchemy 1.4 beta与Poetry一起使用。它已经在PyPi上发布

Poetry无法识别pyproject.toml中的beta包:

[tool.poetry.dependencies]
SQLAlchemy = "^1.4.0b3"

poetry install

Installing dependencies from lock file

Warning: The lock file is not up to date with the latest changes in pyproject.toml. You may be getting outdated dependencies. Run update to update them.

  SolverProblemError

  Because ...  depends on SQLAlchemy (1.4.0b3) which doesn't match any versions, version solving failed.

我该如何告诉Poetry获取软件包的beta版本?

这应该能够正常工作,因为您明确指定了一个预发布版本作为最小支持版本。您看到的警告消息表示poetry.lockpyproject.toml不同步。如果您手动编辑pyproject.toml,就会出现这种情况。如果是这样,您必须先运行poetry lock,然后再运行任何其他的poetry命令。所以,请先执行此操作,然后再尝试运行poetry install - finswimmer
2
哦,如果你想为一个软件包允许预发布版本,你也应该在pyproject.toml文件中声明它:SQLAlchemy = {version = "^1.4.0b3", allow-prereleases = true} - finswimmer
1
“allow-prereleases = true” 正是我正在寻找的。@finswimmer,您能否将您的评论提升为答案,这样我就可以标记此问题已解决了。 - Mikko Ohtamaa
@finswimmer 只是提供信息,即使未设置 allow-prereleases,似乎也允许 1.4.0rc0 等版本,但不允许 1.4.0rc1(这似乎取决于 rc0 与 rc1)。我猜这是因为 rc0 是除发布候选版之外的其他方案的有效版本说明符的结果? - medley56
2个回答

6

在您的 pyproject.toml 文件中,需要以详细形式指定此依赖项(有关更多信息,请参见此处):

SQLAlchemy = {version = "^1.4.0b3"}

然后将选项 allow-prereleases 设置为 true,这样您的代码将如下所示:

SQLAlchemy = {version = "^1.4.0b3", allow-prereleases = true}

或者,您可以使用相应选项在CLI中添加此依赖项:

poetry add SQLAlchemy@^1.4.0b3 --allow-prereleases

1
您也可以这样做:
SQLAlchemy = {version = "^1.4.0*", allow-prereleases = true}

使用诗歌版本大于1.5时,在末尾添加“开始”会导致“无法解析版本约束”的失败。 - Dan Milon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接