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

通过setup.py安装git指定标签Python包不升级问题及配置咨询

问题根因分析

直接pip安装Git URL和读取setup.py依赖的行为逻辑存在差异:

  • 直接给pip传递Git URL时,pip会主动克隆仓库读取包版本,和本地已安装版本对比,版本更新就会执行升级
  • 你之前的setup.py依赖写法不符合PEP 508规范,版本号直接拼接在URL片段末尾,pip无法识别为版本约束,只会检查本地是否存在foo包,只要存在就认为满足依赖,不会拉取仓库校验版本
固定版本安装解决方案

按照PEP 508规范调整install_requires的写法,把版本约束放在包名和依赖URL之间:

setup(
    name='bar',
    install_requires=[
        'foo==0.3.2 @ git+ssh://git@github.com/fergusmac/foo.git@v0.3.2#subdirectory=somedir'
    ]
)

调整后如果安装时仍未触发升级,可加上升级策略参数执行安装:

pip install . -U --upgrade-strategy eager

该参数会强制pip校验所有依赖的版本是否符合约束,不符合就执行升级。

动态安装master分支最新版本解决方案

首先修改依赖声明,把URL中的固定标签改为master分支,版本约束改为最低版本匹配:

setup(
    name='bar',
    install_requires=[
        'foo>=0.0.0 @ git+ssh://git@github.com/fergusmac/foo.git@master#subdirectory=somedir'
    ]
)

注意:你需要保证foo包master分支的setup.py中版本号每次迭代都会正确递增,否则pip无法判断版本高低。

安装时同样使用带升级策略的命令即可,pip会自动拉取master分支的最新代码,读取版本号和本地版本对比,版本更高就执行升级:

pip install . -U --upgrade-strategy eager

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 10:24:03