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

How to install private python package from Azure Artifact feed via CLI

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

我已经按照 MS 的建议安装了 keyringartifacts-keyring,但是每当我尝试 pip 安装时,我都会收到如下提示,要求输入用户名和密码:

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 消息。

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

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

How to install private python package from Azure Artifact feed via CLI

根据文档 Get started with Python packages in Azure Artifacts,它提供了两种主要的方式来连接到提要以推送或拉取 Python 包:

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

看起来您正在使用文档中的选项 1 进行安装。如果我使用你的安装命令行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

注:

The Python Credential Provider lets the pip and twine commands authenticate by sending you through an authentication flow in your web browser.

我的测试结果:

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

此外,您也可以尝试通过第二种方式安装私有python包。