使用 Python 包索引的包(PyPI)

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

使用 Azure Artifacts,开发人员可以从 Azure Artifacts 源和外部注册表(例如 pypi.org)发布和使用包。本文将指导你设置项目并使用命令行有效使用 PyPI 中的 Python 包。

本文将指导如何进行以下操作:

  • 为源启用上游源
  • 将 PyPI 添加为上游源
  • 设置项目
  • 从 Python 包索引安装包

先决条件

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

  • Azure Artifacts 源。

  • 下载 Python

启用上游源

如果尚未创建源,请按照以下步骤创建新源。 请确保检查上游源的框以启用上游源。 如果已有源,请跳到下一步,将 PyPI 添加为上游源。

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

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

  3. 输入源的描述性 名称 并定义其 可见性 (指示谁可以查看源中的包)。 指定源的范围,然后检查上游源检查框中包含公共注册表中的包。

  4. 完成操作后,选择“创建”

    A screenshot showing how to create a need feed.

添加 PyPI 上游

如果在创建源期间选择了上游源检查框,则 PyPI 应自动作为上游源包含在内。 如果没有,可以按照以下步骤手动添加它:

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

  2. 选择“项目”,然后选择齿轮图标gear icon以导航到源设置

  3. 选择上游源,然后选择“添加上游以添加新上游源。

  4. 选择“公共源”,然后从下拉菜单中选择“PyPI”(https://pypi.org/)。

  5. 完成后选择“保存,然后从右上角选择“保存一次”以保存更改。

使用源进行身份验证

  1. 请确保已下载 Python,然后运行以下命令来升级 Python 包管理器:

    python -m pip install --upgrade pip
    
  2. 运行以下命令以安装 Azure Artifacts 密钥器:

    pip install keyring artifacts-keyring
    
  3. 使用打包>读取范围创建个人访问令牌,以便通过 Azure DevOps 进行身份验证。 首次连接到 Azure DevOps 时,需要在出现提示时输入凭据。 在指定字段中提供用户名(任何字符串)和个人访问令牌。 这些凭据将在本地缓存,并在下次使用服务时自动用于登录。

  4. 导航到项目文件夹,然后运行以下命令以创建新的虚拟环境:

    python -m venv <VIRTUAL_ENVIRONMENT_NAME>
    
  5. 在虚拟环境中创建新的 pip.ini 文件(Windows)或 pip.conf 文件(Mac/Linux),然后将以下代码片段粘贴到文件中。 请确保将占位符替换为适当的信息,并谨慎不要将此文件提交到包含个人访问令牌的公共存储库。

    • 项目范围的源

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      
    • 组织范围的源

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      

从 PyPI 安装包

现在,我们已将项目配置为使用源进行身份验证,接下来可以从 PyPI 上游开始安装包。 在此示例中,我们将安装 Flask

  1. 在命令提示符窗口中,导航到项目文件夹并运行以下命令以激活虚拟环境。 将占位符替换为前面创建的虚拟环境的名称:

    <YOUR_VIRTUAL_ENVIRONMENT_NAME>/Scripts/Activate.ps1
    
  2. 运行以下命令检查虚拟环境中安装的包:

    pip list
    
  3. 运行以下命令以安装 Flask

    pip install -U Flask
    
  4. 安装包后,Azure Artifacts 会将此包的副本保存到源。 程序包应在源中可用,如以下屏幕截图所示。

    A screenshot showing packages installed from PyPI upstream.