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

如何从私有GitHub仓库安装已可分发的Python wheel包?

直接从私有GitHub仓库安装wheel包,避免克隆整个仓库

问题背景

我的私有GitHub仓库结构如下:

myrepo\
       | module1\
       |         | pyproject.toml
       |         | src\
       |         |     | *.py
       |         | dist\
       |                | module1.whl
       | module2\
                 | pyproject.toml
                 | src\
                 |     | *.py
                 | dist\
                        | module2.whl

目前通过以下命令从源码安装包,但每次都会克隆整个仓库并本地构建:

pip install ssh+git://git@github.com/myorg/myrepo.git#subdirectory=module1

我想让pip仅下载并安装module1.whl/module2.whl,而非克隆整个仓库,但尝试了以下两种方法都无效:

pip install ssh+git://git@github.com/myorg/myrepo.git#subdirectory=module1/dist/module1-0.1.0-py3-none-any.whl
pip install https://github.com/myorg/myrepo/blob/main/module1/dist/module1-0.1.0-py3-none-any.whl

注:公开仓库中直接用release下载链接是可行的,比如:

pip install https://github.com/numpy/numpy/releases/download/vx.y.z/numpy-x.y.z.tar.gz

解决方案

方法1:使用GitHub原始文件链接(需权限验证)

GitHub的blob链接是网页视图,并非直接文件下载链接,必须换成原始文件链接(以raw.githubusercontent.com开头)。针对私有仓库,需通过以下方式验证身份:

  • HTTPS方式:在链接中加入个人访问令牌(PAT),命令格式如下:
pip install https://<你的PAT>@raw.githubusercontent.com/myorg/myrepo/main/module1/dist/module1-0.1.0-py3-none-any.whl
  • SSH方式:确保本地已配置GitHub SSH密钥,使用SSH格式的原始链接:
pip install git+ssh://git@github.com/myorg/myrepo.git/raw/main/module1/dist/module1-0.1.0-py3-none-any.whl

方法2:利用GitHub Releases托管wheel包

把wheel包上传到仓库的Releases中,就能用类似公开仓库的方式安装,私有仓库的Releases同样需要权限验证:

  1. 进入仓库页面,点击右侧「Releases」,创建新发布版本。
  2. 上传对应module1.whl和module2.whl文件到该版本。
  3. 执行以下命令安装:
# HTTPS方式(带PAT)
pip install https://<你的PAT>@github.com/myorg/myrepo/releases/download/v0.1.0/module1-0.1.0-py3-none-any.whl
# SSH方式
pip install git+ssh://git@github.com/myorg/myrepo/releases/download/v0.1.0/module1-0.1.0-py3-none-any.whl

方法3:使用GitHub Packages托管wheel包

将wheel包发布到GitHub Packages(组织或个人账号下),可直接通过pip从Packages仓库安装,无需处理仓库内文件路径:

  1. 配置pyproject.toml中的发布设置,指向GitHub Packages。
  2. 用twine工具将wheel包上传到GitHub Packages。
  3. 安装时配置pip索引URL(需身份验证):
pip install module1 --index-url https://<你的PAT>@pip.pkg.github.com/myorg/simple/

注意事项

  • 个人访问令牌(PAT)需拥有repo权限(访问私有仓库文件)或read:packages权限(访问GitHub Packages)。
  • SSH方式需确保本地已配置好GitHub SSH密钥,无需额外输入令牌。
  • 禁止使用blob链接,因它返回网页内容而非原始wheel文件,pip无法识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:40:26