如何在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
相关产品推荐
相关产品推荐

