【发布时间】:2019-12-23 17:17:39
【问题描述】:
当我尝试从我们的 Azure DevOps Artifacts 源安装包时,我收到错误消息:
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
此link 用于生成发布包的管道以及安装包的建议方式。我的方法现在是选项 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/
进一步分析
使用干净的笔记本电脑实际上可以处理上述复制细节。公司其他电脑也有同样的问题,所以我们的一些设置与认证冲突。
1234563
使用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 提要的所有者,并且团队已添加为权限选项卡中的所有者。
【问题讨论】:
-
看起来像
pip: github.com/pypa/pip/issues/6179 中的错误。仍然开放。 -
@phd 有趣的发现。我想知道这是否是同样的问题,因为如果我在 Azure 上设置一个安装相同
as-api包的管道,它似乎可以工作(请参阅我帖子中的最后一点)。 -
也许 Azure 在第二种情况下不会发回重定向?
-
@LanceLi-MSFT 这实际上与我从同一页面获得的方法相同。我只是在页面上再次尝试了完全相同的命令,它给出了相同的结果。添加
--pre对版本没有任何影响,使用--index-url与我的相同,只是pip 不会搜索pypi.org/simple 索引。很抱歉造成混淆,我应该添加更多我在问题中尝试过的东西。我现在会更新。 -
您是否像我回答中的图片一样通过了登录检查?我尝试了这两个选项,发现在某些情况下登录检查不会发生,因此我们无法进行身份验证,它只是抛出类似
Could not find a version... 似乎你使用@987654344 @ 进行安装,对于 option1,只有带有 devops feed--index-url https://pkgs.dev.azure.com/xxx/xxx/_packaging/xxx/pypi/simple/的命令就足够了。另外,如果我们添加参数--no-deps有什么不同吗,任何更新都随时让我知道:)
标签: python azure pip azure-devops azure-artifacts