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

如何在同一代码仓库创建不同依赖规模的Python包变体?

为Python包创建不同依赖变体的实现方案

完全可以在同一仓库里实现这种带可选依赖的包变体,核心是用setuptools的extras_require参数来定义不同的依赖组。

具体实现步骤

  • 把所有用户都需要的基础轻量依赖放在install_requires参数中
  • 在setup()函数里添加extras_require参数,按变体分组定义专属依赖:
    from setuptools import setup
    
    setup(
        name="myrepo",
        version="1.0.0",
        install_requires=[
            # 所有场景都需要的基础依赖,比如轻量工具库
            "requests>=2.25.0"
        ],
        extras_require={
            "full": [
                # 完整功能所需的重量级依赖,比如torch
                "torch>=2.0.0"
            ],
            "little": [
                # 轻量版的额外依赖(如果有需要补充的轻量库),若仅需剔除torch,此处可留空
            ]
        },
        # 其他原有配置如packages、author等保持不变
    )
    

用户安装方式

用户可以通过方括号指定要安装的变体:

  • 基础版(仅含install_requires内的依赖):pip install myrepo
  • 完整版(基础依赖+full组的所有依赖):pip install myrepo[full]
  • 轻量版(基础依赖+little组的依赖):pip install myrepo[little]

参考文档

setuptools官方文档中的「可选依赖(Optional Dependencies)」章节,详细说明了extras_require的用法、最佳实践和扩展场景。

内容的提问来源于stack exchange,提问作者Learning from masters

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:02:16