如何从私有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同样需要权限验证:
- 进入仓库页面,点击右侧「Releases」,创建新发布版本。
- 上传对应
module1.whl和module2.whl文件到该版本。 - 执行以下命令安装:
# 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仓库安装,无需处理仓库内文件路径:
- 配置
pyproject.toml中的发布设置,指向GitHub Packages。 - 用
twine工具将wheel包上传到GitHub Packages。 - 安装时配置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
相关产品推荐
相关产品推荐

