如果我想开发一个只能在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
标记。