首页 > 解决方案 > 如何通过 CLI 从 Azure Artifact 源安装私有 python 包

问题描述

我已经在 Azure Artifacts 中设置了一个 pypi 提要,但我似乎无法通过 CLI 进行身份验证以便能够在本地安装 python 包。我希望能够运行pip install并提供 repo url,但我无法通过登录/验证步骤。

我已经按照 MS 的建议keyring进行artifacts-keyring了安装,但是每当我尝试 pip install 时,都会提示输入用户和密码,如下所示:

C:\Users\user-name-here> pip install -r "url-to-feed-here" package-name
User for pkgs.dev.azure.com: <my MS/DevOps username>
Password: <my MS/DevOps password>
WARNING: 401 Error, Credentials not correct for feed-url-here
ERROR: 401 Client Error: Unauthorized for url: feed-url-here

始终无法进行身份验证,并且在通过 ssh 的远程服务器上,它甚至不指示凭据不正确,只是返回了 401 http 消息。

对我来说没有意义的是,我使用完全相同的用户/密码组合登录 DevOps 并创建提要,但我不能使用这些凭据从中提取包?这是否意味着 MS 必须设置一组不同的凭据才能使用它?

我看到的所有其他问题要么是关于使用管道、NuGet,要么是关于使用管道、NuGet 或其他一些方法,而不是没有帮助的直接 cli 命令,因为我想使用 CLI 并可能稍后用一些简单的脚本编写出来。

标签: pythonazureazure-devopscommand-line-interfaceazure-artifacts

解决方案


如何通过 CLI 从 Azure Artifact 源安装私有 python 包

根据Azure Artifacts 中的 Python 包入门文档,它提供了两种主要方式来连接到提要以推送或拉取 Python 包:

  • 安装并使用 Python Credential Provider (artifacts-keyring)(预览版),它会为您设置身份验证。
  • 通过个人访问令牌 (PAT) 手动设置用于推送的 pip.ini/pip.conf 凭据或用于拉取的 .pypirc 凭据。

看起来您正在使用文档中的 option1 进行安装。如果我使用您的安装命令行,我碰巧遇到与您相同的错误pip install -r "url-to-feed-here" package-name

但是,如果我使用文档中的命令行,它可以正常工作:

pip install <package-name> --index-url https://pkgs.dev.azure.com/<your-organization-name>/_packaging/<your-feed-name>/pypi/simple

笔记:

Python Credential Provider 允许 pip 和 twine 命令通过 Web 浏览器中的身份验证流向您发送身份验证。

我的测试结果:

在此处输入图像描述

因此,请尝试使用此命令行通过 CLI 从 Azure Artifact 源安装私有 python 包。

此外,您还可以尝试通过第二个选项安装私有 python 包。


推荐阅读