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

如何在pyproject.toml中根据Python版本指定不同依赖文件

按Python版本指定不同依赖文件的配置方案

首先拆分不同版本的依赖文件,比如:

  • requirements-py27.txt:Python 2.7专属依赖
  • requirements-py39.txt:Python 3.9专属依赖
  • (可选)requirements.txt:两个版本通用的依赖

下面提供两种可行的配置方案:

方案一:直接在pyproject.toml中定义带环境标记的依赖

如果依赖项不多,可直接在配置文件里写明,无需单独的txt文件:

[project]
name = "你的包名"
version = "0.1.0"
python = ">=2.7, <=3.9"
dependencies = [
    # 通用依赖
    "six>=1.10.0",
    # Python 2.7专属依赖
    "futures>=3.0.0; python_version == '2.7'",
    "configparser>=3.5.0; python_version == '2.7'",
    # Python 3.9专属依赖
    "importlib-metadata>=4.0.0; python_version == '3.9'",
]

方案二:结合依赖文件与环境标记加载

若依赖项较多,仍想用txt文件管理,可按版本拆分文件后,通过setuptools的动态依赖结合条件加载:

  1. 准备好对应版本的依赖文件后,修改pyproject.toml:
[project]
dynamic = ["dependencies"]
python = ">=2.7, <=3.9"

[tool.setuptools.dynamic]
dependencies = [
    { file = "requirements.txt" },
    { file = "requirements-py27.txt", condition = "python_version == '2.7'" },
    { file = "requirements-py39.txt", condition = "python_version == '3.9'" },
]

注意事项

  • 环境标记需符合PEP 508规范,比如python_version == '2.7'、python_version >= '3.9'等写法
  • Python 2.7已停止官方维护,若不是必须尽量迁移到Python 3;若需支持,要确保所有依赖包有对应版本支持
  • 安装时pip会自动根据当前Python版本匹配对应依赖项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:53:12