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

能否在requirements文件中基于其他包版本设置Python可选依赖?

基于其他包版本配置PBR依赖的可行性

不能直接使用argparse; my_package=='2.6'这种语法来配置依赖,因为PBR依赖的setuptools环境标记(environment markers)仅支持预定义的系统/语言相关变量(比如python_version、os_name等),并不包含第三方包的版本变量。

要实现基于其他包版本的条件依赖,可以采用以下几种方案:

  • 使用额外依赖(extras_require):
    在setup.cfg或setup.py中定义针对特定包版本的额外依赖组,用户安装时通过指定额外组来触发依赖安装。例如:

    [options.extras_require]
    my_package_26 =
        argparse
    

    用户安装时执行:pip install your-package[my_package_26]

  • 动态依赖解析(不推荐):
    在setup.py中通过代码检查已安装的my_package版本,动态添加依赖。但这种方式破坏了声明式依赖的原则,可能导致安装过程中出现不可预期的问题,不建议在生产环境使用。

  • 使用requirements文件配合外部工具:
    可以在requirements.txt中通过工具(如pip-tools)来管理基于其他包版本的依赖,但PBR本身不会直接解析这类自定义条件,需要依赖外部工具处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:39:12