如何在Python Poetry中指定对操作系统的依赖关系



如果我想开发一个只能在Linux和macOS中工作的Python包。如何在Python Poetry中指定此限制?

pyproject.toml文件中的Trove分类器可用于指定支持哪些操作系统。对于Linux和MacOS,这将是:
[tool.poetry]
classifiers = [
"Operating System :: MacOS",
"Operating System :: POSIX :: Linux"
]

然而,当使用poetry install命令时,这并不能阻止诗歌尝试在其他平台上安装该包。GitHub第2051期中建议支持特定于平台的轮子标签,在撰写本文时,它在诗歌1.2版本的待办事项列表中。

为了指定将软件包作为另一个诗歌项目的依赖项安装在哪个平台上,可以使用环境标记:

[tool.poetry.dependencies]
yourpackage = {version = "*", markers = "sys_platform == 'linux' or sys_platform == 'darwin'"}

poetry install在其他平台上使用时,Poetry将忽略yourpackage,但不会给出任何错误。如果它是一个硬依赖,那么最好在其他地方指明支持哪些平台。

在这里的文档中,他们提到支持环境标记,您可以使用sys_platform标记。

最新更新