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

如何在pyproject.toml中配置tzdata跨平台最低版本依赖?

解决tzdata跨源版本号的依赖设置问题

在pyproject.toml中不能直接用|来写“或”条件,因为不符合PEP 508的依赖语法规范。针对conda-forge和PyPI上tzdata版本号格式不同的情况,有两种可行的解决方式:

方式一:用conda专属环境标记区分

这是最精准的方式,利用conda环境特有的name == 'conda'标记来分别指定依赖:

dependencies = [
    # conda/conda-forge环境下要求版本≥2022a
    "tzdata>=2022a; name == 'conda'",
    # pip/PyPI环境下要求版本≥2022.1
    "tzdata>=2022.1; name != 'conda'"
]

方式二:通过环境变量判断

如果担心环境标记的兼容性,也可以通过conda的环境变量CONDA_PREFIX来区分环境:

dependencies = [
    "tzdata>=2022a; env.get('CONDA_PREFIX') is not None",
    "tzdata>=2022.1; env.get('CONDA_PREFIX') is None"
]

说明

  • pip无法识别2022a这类字母后缀的版本号,所以必须把两种环境的依赖分开,避免解析报错;
  • 上述写法会让conda安装时匹配conda-forge的版本规则,pip安装时匹配PyPI的版本规则,均满足“至少2022a/2022.1”的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:00:18