You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Poetry添加Azure DevOps存储包时遇授权错误求助

解决Poetry添加Azure DevOps Python包的授权失败问题

环境信息

  • 设备:Mac M1 Pro(Sequoia 15.1)
  • Python版本:3.11
  • Poetry版本:1.8.4
  • Azure DevOps PAT:已配置Packaging>Read权限,未过期,无特殊字符

问题描述

尝试通过Poetry将Azure DevOps中创建的npipack包添加为本地项目依赖时,执行poetry add npipack --source azure出现授权错误,提示访问源地址时授权失败。已完成以下前置操作:

  1. 设置环境变量AZURE_DEV_OPS_PAT存储有效PAT
  2. 在pyproject.toml中配置Azure源
  3. 配置Poetry的Azure仓库及http-basic认证
  4. 安装artifacts-keyring

排查修复步骤

1. 验证环境变量加载状态

终端执行以下命令确认AZURE_DEV_OPS_PAT是否被正确读取:

echo $AZURE_DEV_OPS_PAT

若输出为空,说明环境变量未生效。Mac M1默认使用zsh,需将变量永久添加到~/.zshrc:

echo 'export AZURE_DEV_OPS_PAT="你的PAT值"' >> ~/.zshrc
source ~/.zshrc

重启终端后再次验证。

2. 检查pyproject.toml源配置格式

确保pyproject.toml中的Azure源配置正确,替换占位符为你的实际信息:

[[tool.poetry.source]]
name = "azure"
url = "https://pkgs.dev.azure.com/你的组织名/_packaging/你的feed名/pypi/simple/"
priority = "explicit"

注意URL末尾必须包含斜杠/,否则会导致授权路径匹配失败。

3. 重新配置Poetry仓库认证

http-basic配置可能存在遗漏或错误,重新执行以下命令(用户名可任意填写,Azure仅校验PAT):

poetry config repositories.azure https://pkgs.dev.azure.com/你的组织名/_packaging/你的feed名/pypi/simple/
poetry config http-basic.azure dummy $AZURE_DEV_OPS_PAT

4. 修复artifacts-keyring兼容性

Poetry 1.8.x与最新版artifacts-keyring可能存在兼容问题,安装指定稳定版本:

pip install artifacts-keyring==1.0.1

安装完成后重启终端,确保keyring服务正常加载。

5. 直接验证PAT权限

在浏览器中访问https://pkgs.dev.azure.com/你的组织名/_packaging/你的feed名/pypi/simple/npipack/,认证弹窗中用户名填任意值,密码填你的PAT:

  • 若能正常访问,说明PAT权限有效,问题出在Poetry配置;
  • 若仍无法访问,需检查PAT的权限范围或重新生成PAT(确保勾选Packaging > Read权限)。

6. 清除Poetry缓存

缓存中的旧认证信息可能导致冲突,执行以下命令清除缓存:

poetry cache clear --all pypi
poetry cache clear --all azure

之后重新执行poetry add npipack --source azure


内容的提问来源于stack exchange,提问作者Davide Motta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 17:15:07