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

如何在Gitlab私有仓库的Python脚本中调用另一仓库的函数?

跨私有GitLab仓库实现Python函数调用方案

完全可以实现跨仓库调用,下面是几种适配内部私有GitLab环境的实用方案:

方案一:把Repo A包装成Python依赖包安装

这是最标准的Python项目依赖管理方式,适合长期维护的通用函数库:

  1. 在Repo A根目录创建setup.py(或pyproject.toml),将其转为标准Python包。示例setup.py:
    from setuptools import setup, find_packages
    
    setup(
        name="repoa-utils",
        version="0.1.0",
        packages=find_packages(),
        description="通用工具函数集合",
    )
    
  2. 在Repo B的环境中,通过Git URL直接安装私有Repo A作为依赖:
    • HTTPS方式(需要GitLab个人访问令牌):
      pip install git+https://<用户名>:<访问令牌>@<内部GitLab域名>/<组>/repo-a.git@main#egg=repoa-utils
      
    • SSH方式(已配置SSH密钥免密的话更方便):
      pip install git+ssh://git@<内部GitLab域名>/<组>/repo-a.git@main#egg=repoa-utils
      
  3. 安装完成后,Repo B的脚本就能直接导入调用:
    from repoa_utils.common_func import your_target_function
    

方案二:使用Git子模块绑定Repo A

适合需要在Repo B中直接关联Repo A特定版本代码的场景:

  1. 在Repo B根目录执行命令添加子模块:
    git submodule add <Repo A的Git地址> ./repo_a_submodule
    
  2. 拉取子模块的代码:
    git submodule update --init --recursive
    
  3. 在Repo B的脚本中,把Repo A的目录加入Python路径后导入:
    import sys
    sys.path.append("./repo_a_submodule")
    from common_script import your_target_function
    
    注意:子模块的代码不会自动同步,需要手动执行git submodule update --remote来拉取Repo A的最新变更。

方案三:通过内部私有PyPI仓库共享

如果团队有内部私有PyPI(比如GitLab自带的Package Registry、DevPI),适合多项目共享通用库的场景:

  1. 按照私有PyPI的规则,把Repo A的包发布到内部仓库(具体步骤参考你用的仓库文档)
  2. 在Repo B的requirements.txt中添加包名,安装时指定内部PyPI源:
    pip install -r requirements.txt --index-url <内部私有PyPI地址>
    
  3. 之后就能像使用公开PyPI包一样导入Repo A的函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:33:19