使用 Azure Artifacts 发布和下载 Python 包

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

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

先决条件

产品 要求
Azure DevOps - 一个 Azure DevOps 组织
- Azure DevOps 项目
- 下载并安装 Python

获取代码

  1. 如果没有自己的 Python 项目,可以使用以下示例 Python 项目。 否则,可以跳到下一部分:

    https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world
    
  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 配合使用,请选择获取工具,并按照说明下载 Python 并安装 Twine 和 artifacts 密钥环。

  5. 在主目录中创建 pypirc 文件,并粘贴 Project 安装 部分中提供的代码片段。 你的文件应如下所示:

    [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>