使用Python诗歌将程序包发布到Azure DeveOps工件

时间:2020-09-15 19:56:35

标签: python azure-devops python-poetry

背景

我已经看到了这个答案,但是How to Publish to PyPI with Azure-Pipelines and Poetry应该是在凭据生成的地方,当我转到Connect to Feed> Python时,看不到相同的选项。我只看到piptwine,它们都显示了如何进行未经身份验证的推送。

我有一个Azure DevOps Artifacts Python Feed设置,我是该管理员的管理员。我想使用poetry将正在处理的程序包发布或推送到该Feed中。但是,当提示输入凭据时,我使用我的电子邮件和密码登录,但我认为这些密码不正确。我收到401未经授权。所以这是我正在做的步骤

我创建了项目

poetry new phil_hello_world --src

然后我在src/phil_hello_world/__init__.py中添加了一些样板代码

__version__ = '0.1.0'


def hello_world():
"""Hello World Function
"""
print('Hello, World!')

然后,我能够构建和安装该软件包,并在IDLE和其他一些脚本中使用它。

poetry build

问题

因此,问题出在正确设置我的Azure DevOps Python Artifact Feed设置。他们建议使用点子或麻线,但是我正尝试使用它,所以请耐心等待。

首先,我设置了笔迹,以便诗歌对此有所了解。我们将进行本地配置。

poetry config repostiories.azure-python-feed https://pkgs.dev.azure.com/myOrg/Project/_packaging/azure-python-feed/pypi/upload

然后我尝试使用以下方法向上推包装:

poetry publish -r azure-python-feed --build

然后我收到401未经授权的错误。

因此,我尝试通过以下方式使用我的登录信息:

poetry config http-basic.azure-python-feed ${USER_EMAIL} ${USER_LOGIN_PASS}

buuuuut,我仍然收到401未经授权。难道我做错了什么?我确实确保添加了“连接我”弹出窗口中列出的推荐程序包。

poetry add twine keyring artifacts-keyring
poetry install

1 个答案:

答案 0 :(得分:1)

要缩小问题范围,您可以尝试以下各项:

  1. 尝试使用Square Root Decomposition创建新的PAT,然后重试。
  2. 尝试运行命令Full access

poetry publish -u $(username) -p $(password) ...可以是任何字符,但不能为空。请记住,也要使用$(username)选项来定义您的存储库。