如何通过Poetry从私有GitHub仓库安装Wheel包?
如何通过Poetry从私有GitHub仓库安装Wheel包?
问题背景
我已将一个Wheel包上传至私有GitHub仓库,通过设置包含GitHub令牌的PIP_EXTRA_INDEX_URL环境变量,可使用pip install结合https://raw.githubusercontent.com/<github_user>/<repo_name>/master/dist/<my_wheel>.whl这类URL正常安装。但在Poetry管理的项目中,希望直接从仓库安装该Wheel包,而非手动下载本地文件。尝试过多种pyproject.toml源配置、poetry config命令及URL变体,均返回404错误,且不想硬编码GitHub令牌。
可行解决方案
方案1:通过环境变量传递令牌直接安装
利用已设置的GitHub令牌环境变量(如GITHUB_TOKEN),拼接带认证的Wheel文件URL进行安装:
poetry add "https://${GITHUB_TOKEN}@raw.githubusercontent.com/<github_user>/<repo_name>/master/dist/<my_wheel>.whl"
此方式无需硬编码令牌,通过环境变量自动注入认证信息,直接访问私有仓库的Wheel文件。
方案2:配置Poetry HTTP认证后安装
先配置仓库的认证信息(令牌通过环境变量传入,避免硬编码):
# 配置指向Wheel存放目录的仓库地址 poetry config repositories.my_private_wheels https://raw.githubusercontent.com/<github_user>/<repo_name>/master/dist/ # 设置HTTP认证:用户名可填任意值(如"github"),密码使用GitHub令牌 poetry config http-basic.my_private_wheels "github" "${GITHUB_TOKEN}"
完成配置后,直接使用Wheel文件的完整URL安装:
poetry add https://raw.githubusercontent.com/<github_user>/<repo_name>/master/dist/<my_wheel>.whl
失败原因说明
之前的配置无效主要有两个原因:
- 源配置不符合要求:
https://raw.githubusercontent.com/<github_user>/并非PyPI兼容的软件源(缺少simple/索引结构),Poetry无法从这类目录自动检索包,必须指定具体的Wheel文件URL。 - 错误使用
git+格式:git+https://适用于安装Git仓库中的源码包,而非直接的Wheel文件,因此该格式无法正常访问目标文件。
内容的提问来源于stack exchange,提问作者Salazaja
相关产品推荐
相关产品推荐

