从GCP Artifact Registry安装Python私有包遇依赖问题求助
问题描述
从GCP Artifact Registry安装私有Python包时,使用pip结合keyrings认证的流程会出现依赖找不到的错误(如autoflake<3.0.0,>=2.3.1、backoff等包找不到),但手动下载包的.tar.gz文件后用pip install pkg-0.0.1.tar.gz能正常安装。发布流程用Poetry完成,确认无问题。当前安装步骤:
export GOOGLE_APPLICATION_CREDENTIALS=creds.json pip install --no-cache-dir keyring keyrings.google-artifactregistry-auth pip install --no-cache-dir --index-url https://location-python.pkg.dev/project/pkg/simple/ pkg
解决方法
- 替换索引参数:用
--extra-index-url替代--index-url。--index-url会将私有源设为唯一包索引,导致pip无法从公共PyPI拉取autoflake这类公共依赖;而--extra-index-url是在默认PyPI基础上额外添加私有源,既可以从私有源获取目标包,也能从PyPI拉取公共依赖。修改后的安装命令:pip install --no-cache-dir --extra-index-url https://location-python.pkg.dev/project/pkg/simple/ pkg - 检查认证有效性:运行
keyring get https://location-python.pkg.dev/project/pkg/simple/验证keyring是否能正常获取私有源的访问凭证;也可以给pip命令加-vv参数查看详细日志,确认认证过程是否成功。 - 多私有源处理(若有):如果私有包的依赖中还有其他私有包,需要将所有对应的私有源都添加到
--extra-index-url(用逗号分隔),或者配置pip.conf文件统一管理索引列表。
内容的提问来源于stack exchange,提问作者Luiz
相关产品推荐
相关产品推荐

