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

如何让setup.py的install_requires跳过已安装的私有仓库依赖?

解决方案

你遇到的问题本质是setuptools处理带URL的依赖声明时,默认会忽略本地已安装版本,强制访问URL做包校验,以下是对应你两个需求的可落地实现:

方案1:按版本要求自动跳过已满足的依赖

该方案会自动检测本地是否安装了符合最低版本要求的pyGSO,满足则不添加私有仓库依赖声明,避免触发仓库访问:

  1. 首先在setup.py开头添加依赖检测逻辑:
    from setuptools import setup
    from pkg_resources import get_distribution, DistributionNotFound, VersionConflict
    
    # 自定义pyGSO的最低兼容版本
    PYGSO_MIN_VERSION = "1.0.0"
    pygso_version_req = f"pyGSO>={PYGSO_MIN_VERSION}"
    
    pygso_dep = []
    try:
        # 校验本地已安装版本是否符合要求
        get_distribution(pygso_version_req)
    except (DistributionNotFound, VersionConflict):
        # 未安装/版本不符合时才添加私有仓库依赖
        pygso_dep = [
            f"pyGSO @ git+https://dev.azure.com/.../pyGSO@Main#egg=pyGSO-{PYGSO_MIN_VERSION}"
        ]
    
  2. 修改setup的install_requires配置,插入动态生成的依赖项:
    setup(
        name="parasol",
        version="2.18.1",
        # 其他原有配置保持不变
        install_requires=[
            # 其他原有依赖保持不变
            *pygso_dep,
        ],
    )
    

注意:URL末尾加#egg=pyGSO-版本号后缀是为了让setuptools能直接识别依赖版本,减少不必要的校验请求。

方案2:显式控制是否跳过私有依赖校验

如果需要更明确的离线安装控制,可以加环境变量开关,手动确认已安装pyGSO时直接跳过该依赖的声明:

  1. setup.py代码调整如下:
    import os
    from setuptools import setup
    
    # 读取环境变量判断是否为离线安装模式
    OFFLINE_MODE = os.getenv("PARASOL_OFFLINE", "0").lower() in ("1", "true", "yes")
    pygso_dep = []
    if not OFFLINE_MODE:
        pygso_dep = ["pyGSO @ git+https://dev.azure.com/.../pyGSO@Main"]
    
    setup(
        name="parasol",
        version="2.18.1",
        # 其他原有配置保持不变
        install_requires=[
            # 其他原有依赖保持不变
            *pygso_dep,
        ],
    )
    
  2. 离线环境安装操作:
    先手动完成pyGSO的安装,再运行安装命令时开启离线模式即可:
    • Linux/macOS终端:PARASOL_OFFLINE=1 pip install .
    • Windows CMD:set PARASOL_OFFLINE=1 && pip install .
    • Windows PowerShell:$env:PARASOL_OFFLINE=1; pip install .

内容的提问来源于stack exchange,提问作者Wyko ter Haar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:45:05