我已经在 Azure Artifacts 中设置了 pypi feed,但我似乎无法通过 CLI 进行身份验证以便能够在本地安装 python 包。我希望能够运行 pip install
并提供存储库 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 必须设置一组不同的凭据才能使用它?
我看到的所有其他问题要么是关于使用 Pipelines、NuGet,要么是关于使用 Pipelines、NuGet 或其他一些方法,而不是直接的 cli 命令,这没有帮助,因为我想使用 CLI 并可能用简单的脚本来编写它稍后。
最佳答案
How to install private python package from Azure Artifact feed via CLI
根据文档Get started with Python packages in Azure Artifacts ,它提供了两种连接到 feed 来推送或拉取 Python 包的主要方法:
- 安装并使用 Python Credential Provider (artifacts-keyring) (预览版),它为您设置身份验证。
- 手动设置 pip.ini/pip.conf 的推送凭证,或者 .pypirc 用于通过个人访问 token (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 feed 安装私有(private) python 包。
此外,您也可以尝试通过第二种方式安装私有(private)python包。
关于python - 如何通过 CLI 从 Azure Artifact feed 安装私有(private) python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65255208/