开始使用 Azure Artifacts 中的 Python 包

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

使用 Azure Artifacts,可以从源库和公共注册表(如 PyPi)发布和下载包。 本快速入门将指导你创建源、配置项目和管理 Azure Artifacts 源中的 Python 包。 在本文中,您将学习如何:

  • 创建新源。
  • 通过源进行身份验证。
  • 发布 Python 包。
  • 从源安装包。

先决条件

  • 创建 Azure DevOps 组织项目(如果尚未创建)。

  • 下载并安装 Python

获取代码

  1. 如果没有自己的 Python 项目,可以使用以下示例 Python 项目:

    https://github.com/microsoft/python-package-template
    
  2. 要生成 wheel 包和源码分发包,请在项目目录中运行以下命令:

    pip install --upgrade build
    python -m build
    
  3. 如果 Python 项目具有 setup.py 文件,还可以使用此命令生成包:

    python setup.py sdist bdist_wheel
    

创建源

  1. 登录到 Azure DevOps 组织并导航到项目。

  2. 选择“项目”,然后选择“创建源”

  3. 为源提供一个名称,选择定义谁可以查看包的可见性选项;如果想包含来自 nuget.orgnpmjs.com 等源的包,请选中包含来自公共源的包,对于范围,决定源的范围是项目还是整个组织。

  4. 完成后,选择 创建

    显示用于在 Azure DevOps Services 中创建新源的选择的屏幕截图。

  1. 登录到 Azure DevOps 服务器,然后转到项目。

  2. 选择“项目”,然后选择“创建源”

  3. 为源提供一个名称,选择定义谁可以查看包的可见性选项;如果想包含来自 nuget.orgnpmjs.com 等源的包,请选中包含来自公共源的包,对于范围,决定源的范围是项目还是整个组织。

  1. 完成后,选择 创建

    显示用于在 Azure DevOps 2022 中创建新源的选择的屏幕截图。

  1. 完成后,选择 创建

    显示用于在 Azure DevOps 2020 中创建新源的选择的屏幕截图。

注意

默认情况下,当创建新提要时,项目中的生成服务(例如:projectName Build Service (orgName))将被分配提要和上游阅读者(协作者)角色。

连接到源

  1. 登录到 Azure DevOps 组织,然后导航到项目。

  2. 选择工件,从下拉菜单中选择源,然后选择连接到源

  3. Python 部分下选择 twine

  4. 如果这是你第一次将 Azure Artifacts 与 twine 配合使用,请选择获取工具,并按照步骤安装必备组件。

  5. pypirc 文件添加到主目录,并粘贴所提供的代码片段。 你的文件应如下所示:

    [distutils]
    Index-servers =
        FEED_NAME
    
    [FEED_NAME]
    Repository = https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/pypi/upload/
    

注意

如果 .pypirc 文件已经包含用于公共 PyPI 索引的凭据,建议删除 [pypi] 部分,以防止将专用包意外发布到 PyPI。

发布包

  1. 在项目目录中运行以下命令,以创建源分发版和滚轮分发版:

    python setup.py sdist bdist_wheel
    
    
  2. 运行以下命令以发布包。 使用 -r FEED_NAME 标记来确保不会意外地将专用包发布到 PyPI。

    twine upload -r <FEED_NAME> dist/*
    

安装软件包

  1. 在项目目录中运行以下命令以安装包:

    pip install
    
  2. 要安装特定的包,请运行以下命令,并将占位符替换为源中的包名称。

    pip install <PACKAGE_NAME>
    

后续步骤

使用 Python 包索引中的包(PyPI)使用 Azure Pipelines 设置上游源发布 Python 包