当我尝试从 Azure DevOps Artifacts feed 安装包时,出现错误:
Looking in indexes: https://pypi.org/simple, https://pkgs.dev.azure.com/company/company_Software/_packaging/PyPI/pypi/simple/
ERROR: Could not find a version that satisfies the requirement as-api (from versions: none)
ERROR: No matching distribution found for as-api
当使用pip install -vvv
可能会产生机密信息,我无法在此处提供完整的日志。请随时询问有关日志的任何具体问题。与此同时,我可以看到有希望的消息,例如:
Found index url https://pkgs.dev.azure.com/company/company_Software/_packaging/PyPI/pypi/simple/
Getting credentials from keyring for https://pkgs.dev.azure.com/company/company_Software/_packaging/PyPI/pypi/simple/
还有一些有问题的消息?:
Status code 302 not in (200, 203, 300, 301)
Skipping link: not a file: ...
Given no hashes to check 0 links for project 'as-api': discarding no candidates
复制细节
virtualenv .venv
.\.venv\Scripts\activate
python -m pip install -U pip
pip install keyring artifacts-keyring
pip install as-api
This link https://learn.microsoft.com/en-us/azure/devops/artifacts/quickstarts/python-packages?view=azure-devops用于生成发布包的管道以及安装包的建议方法。我的方法现在是选项 1 和选项 2 的混合。请注意使用 php.ini 文件来设置--index-url
和artifacts-keyring
包(安装时使用--pre
对版本没有任何影响),所以它确实没有任何区别。但是,我分别尝试了这两个选项,它不会生成浏览器,因此给出了相同的结果。
系统详细信息:
- 操作系统:Windows 10
- Python 2.7.17
pip list
Package Version
----------------- ----------
artifacts-keyring 0.2.8rc0
certifi 2019.11.28
chardet 3.0.4
configparser 4.0.2
entrypoints 0.3
idna 2.8
keyring 18.0.1
pip 19.3.1
pywin32-ctypes 0.2.0
requests 2.22.0
setuptools 42.0.2
urllib3 1.25.7
wheel 0.33.6
文件夹结构:
test
|-- test.py
|-- .venv
|-- pip.ini
|-- ... other virtualenv folders and files
pip.ini:
[global]
extra-index-url = https://pkgs.dev.azure.com/company/company_Software/_packaging/PyPI/pypi/simple/
更深入的分析
使用干净的笔记本电脑实际上可以处理上述复制细节。公司的其他电脑也有同样的问题,所以我们的一些设置与身份验证发生了冲突。
如果我们使用管道(参见这个link https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/package/pip-authenticate?view=azure-devops)来安装as-api
包,它有效,所以我怀疑这是一个身份验证问题,但任何文档中都没有提到。
Using https://用户名:密码@ https://username:password@...即使用户名和密码错误,也不会给出任何身份验证错误。
使用正确的用户名但密码中包含符号会触发交互模式输入用户名和密码。然而,这给出了这个错误:WARNING: 401 Error, Credentials not correct for https://pkgs.dev.azure.com/company/company_Software/_packaging/PyPI/pypi/simple/as-api/
请注意,我是 Artifacts feed 的所有者,并且该团队已在权限选项卡中添加为所有者。