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

如何在setup.py中添加Git仓库子目录依赖链接并解决git+ssh错误

解决在setup.py中安装另一个仓库子目录模块的问题

你遇到的unknown url type: git+ssh错误,核心原因是旧的dependency_links机制已经被打包工具废弃,且新版本的pip/setuptools不再支持这种写法。下面是具体的解决步骤和说明:

为什么会出错?

dependency_links在setuptools 42.0.0版本后就被正式弃用,pip从19.0版本开始也不再处理这个参数。同时旧版本的工具对git+ssh格式的URL解析支持也不完善,这直接导致了你看到的错误提示。

正确的解决方案

1. 先升级打包工具版本

首先确保你使用的是最新版的pip、setuptools和wheel,避免版本兼容问题:

pip install --upgrade pip setuptools wheel

2. 修改第一个仓库的setup.py

移除dependency_links参数,直接在install_requires里指定包含子目录的Git URL依赖:

from setuptools import setup

setup(
    name="your-first-repo-name",
    version="0.1.0",
    # 补充其他必要参数(比如packages、author等)
    install_requires=[
        # 格式规则:包名 @ git+ssh://Git仓库URL@分支#subdirectory=子目录路径
        "repo @ git+ssh://git@bitbucket.aaaaaaa.aa:0000/project/repo@master#subdirectory=folder2"
    ]
)

3. 使用pip开发模式安装(替代旧命令)

现在推荐用pip的-e选项来安装开发模式,取代过时的python setup.py develop命令:

pip install -e .

额外注意事项

  • 确认Git客户端已安装:如果系统里没有Git命令行工具,pip无法克隆Git仓库,也会触发URL解析错误。可以执行git --version来验证Git是否正常可用。
  • 推荐配置pyproject.toml:为了更好适配现代打包标准,建议在第一个仓库根目录创建pyproject.toml文件,指定构建后端:
[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

这个文件会告诉打包工具使用正确的构建链。

兼容旧环境的替代方案

如果必须使用旧版本工具,可以先手动安装第二个仓库的子目录模块,再安装第一个仓库:

pip install git+ssh://git@bitbucket.aaaaaaa.aa:0000/project/repo@master#subdirectory=folder2
pip install -e .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:34:50