You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PEP 631规范的pyproject.toml(PDM)中按操作系统指定依赖版本?

解决PEP 631下按操作系统指定kaleido依赖版本的问题

你遇到的问题是包管理器处理同一包的多环境标记依赖时,顺序不当会导致符合条件的版本被覆盖。以下是两种正确的适配写法:

方法一:规范使用platform_system标记

确保环境标记的引号和条件判断完全符合PEP 508要求:

[project]
...
dependencies = [
    'kaleido==0.0.3; platform_system != "Windows"',
    'kaleido==0.1.0post1; platform_system == "Windows"',
]

方法二:改用sys_platform标记

sys_platform是更通用的环境标记,取值更明确(win32对应Windows,linux对应Linux,darwin对应macOS):

[project]
...
dependencies = [
    "kaleido==0.0.3; sys_platform != 'win32'",
    "kaleido==0.1.0post1; sys_platform == 'win32'",
]

两种写法都能让PDM在对应操作系统下正确匹配指定的kaleido版本,避免版本覆盖或匹配失败的问题。

内容的提问来源于stack exchange,提问作者Andi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:53:16