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

Ben*_* Du 5 python dependencies operating-system markers python-poetry

如果我想开发一个仅适用于 Linux 和 macOS 的 Python 包。如何在 Python Poetry 中指定此限制?

Jon*_*tra 10

文件中的Trove 分类器pyproject.toml可用于指定支持哪些操作系统。对于 Linux 和 MacOS,这将是:

[tool.poetry]
classifiers = [
    "Operating System :: MacOS",
    "Operating System :: POSIX :: Linux"
]
Run Code Online (Sandbox Code Playgroud)

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

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

[tool.poetry.dependencies]
yourpackage = {version = "*", markers = "sys_platform == 'linux' or sys_platform == 'darwin'"}
Run Code Online (Sandbox Code Playgroud)

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


Suj*_*ngh 2

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