快速入门:使用命令行通过 Azure Artifacts 发布和使用 Python 包(CLI)

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

本快速入门介绍如何创建 Azure Artifacts 源,并使用源从本地开发环境中的命令行发布和使用 Python 包。 完成后,已将 Python 包发布到源,并从源安装到本地开发环境。

若要在 Azure Pipelines 中发布和使用包,请参阅 使用 Azure Pipelines 发布 Python 包。

先决条件

若要运行以下步骤,必须具备:

  • Azure DevOps 组织。 免费创建一个
  • 具有打包>读取范围的个人访问令牌(PAT)。 若要创建一个,请参阅 “创建 PAT”。
  • 一个 Azure DevOps 项目。 如果没有项目, 请创建一个项目。
  • 在本地计算机上安装 Python 3.8 或更高版本。 在此处下载 Python。
  • pip 19.2 和 twine 1.13.0 或更高版本。
  • 要从本地计算机发布到源的 Python 包。
  • 如果使用示例 Python 包:
    • 一个 GitHub 帐户。 创建一个免费的 GitHub 帐户(如果没有)。
    • 在本地计算机上安装的 git。
  • 一个 GitHub 帐户。 创建一个免费的 GitHub 帐户(如果没有)。
  • 访问 Azure DevOps Server 集合。
  • 具有打包>读取范围的个人访问令牌(PAT)。 若要创建一个,请参阅 “创建 PAT”。
  • 一个 Azure DevOps 项目。 如果没有项目, 请创建一个项目。
  • 在本地开发环境中安装 Python 3.8 或更高版本。
  • pip 19.2 和 twine 1.13.0 或更高版本。
  • 如果使用示例 Python 包:
    • 一个 GitHub 帐户。 创建一个免费的 GitHub 帐户(如果没有)。
    • 在本地计算机上安装的 git。

创建本地 Python 包

需要一个 Python 包才能发布到源。 如果没有要发布的包,可以从 GitHub 克隆示例 Python 包。

克隆示例 Python 包

使用以下步骤从 GitHub 使用示例 Python 包。

  1. 转到以下 GitHub 存储库:

    https://github.com/microsoft/python-package-template
    
  2. 在 GitHub 帐户中创建存储库分支。

  3. 转到分支存储库,然后选择“ 代码”。

  4. 复制分叉存储库的 URL。

  5. 在本地计算机上的 CLI 中,使用从分支存储库复制的 URL,使用以下命令克隆存储库:

    git clone <REPOSITORY_URL>
    
  6. 将目录更改为克隆的存储库。

    cd python-package-template
    

生成包

若要生成 wheel 和源分发,请在项目目录中运行以下命令:

pip install --upgrade build
python -m build

如果 Python 项目有文件 setup.py ,可以使用以下命令生成包:

python setup.py sdist bdist_wheel

创建源

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

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

    A screenshot showing how to create a feed.

  3. 输入源的以下信息:

    1. 输入源的描述性 名称
    2. 定义其 可见性 (指示谁可以查看源中的包)。
    3. 选择是否使用来自公共源的包,例如 pypi.org。
    4. 指定源的范围。
  4. 选择创建

  1. 转到 Azure DevOps 集合,选择项目。

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

    A screenshot showing how to create a feed in DevOps Server.

  3. 输入源的以下信息:

    1. 输入源的描述性 名称
    2. 定义其 可见性 (指示谁可以查看源中的包)。
    3. 选择是否使用来自公共源的包,例如 pypi.org。
    4. 指定源的范围。
  4. 选择创建

  1. 转到 Azure DevOps 集合,选择项目。

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

  3. 输入源的以下信息:

    1. 输入源的描述性 名称
    2. 定义其 可见性 (指示谁可以查看源中的包)。
    3. 选择是否使用来自公共源的包,例如 pypi.org。
    4. 指定源的范围。
  4. 选择创建

  1. 转到 Azure DevOps 集合,选择项目。

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

  3. 输入源的以下信息:

    1. 输入源的描述性 名称
    2. 定义其 可见性 (指示谁可以查看源中的包)。
    3. 选择是否使用来自公共源的包,例如 pypi.org。
  4. 选择创建

将包发布到源

使用孪生将包上传到 Azure Artifacts 源。

  1. 转到 Azure DevOps 项目并选择“ 项目”。

  2. 选择源并选择连接源

    A screenshot highlighting the connect to feed.

  3. 选择 Python 部分下的孪生体

    A screenshot highlighting the twine package type.

  4. 在开发计算机上,确保已安装孪生体。

    pip install --upgrade twine
    
  5. 按照“项目设置”部分中的说明设置.pypirc文件。

    A screenshot highlighting the `.pyirc` content.

  6. 为了避免每次发布包时都需要输入个人访问令牌,可以将凭据添加到 .pypirc 文件中。 确保不会将个人访问令牌检查到公共存储库中。

    .pypirc包含凭据的文件示例:

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. 若要上传包,请在项目目录中运行以下命令,将 <F企业版D_NAME>替换为源名称。 在 Windows 上,可能需要使用--config-file参数指定.pypirc文件位置。

    twine upload --repository <FEED_NAME> dist/*
    

从源安装包

  1. 转到 Azure DevOps 项目并选择“ 项目”。

  2. 选择源并选择连接源

    A screenshot highlighting the connect to feed button.

  3. 选择 Python 部分下的 pip

    A screenshot highlighting the pip package type.

  4. 准备本地 Python 环境。

    1. 确保 pip 已安装并更新:

      python -m pip install --upgrade pip
      
    2. 创建和激活 Python 虚拟环境:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. pip.ini (Windows)或 pip.conf (Mac/Linux)文件添加到虚拟环境的根目录。 从连接的“项目设置”部分复制内容以馈送对话框,并将其添加到pip.inipip.conf 文件。

    A screenshot highlighting the pip.ini file content.

  6. 若要避免每次从源安装包时输入个人访问令牌,可以将凭据添加到 pip.inipip.conf 文件。 请确保不要将个人访问令牌检查到公共存储库。

    包含凭据的 pip.ini 或 pip.conf 文件的示例:

    [global]
    extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. 若要安装包,请运行以下命令,将PACKAGE_NAME>替换为<源中的包名称。

    pip install <PACKAGE_NAME>
    

清理资源

完成创建的资源后,可以将其删除,以避免产生费用。 删除项目时,会删除其所有项目级别项目源。

删除项目:

  1. 选择“项目设置”。
  2. “项目详细信息 ”页上,选择页面底部的“ 删除 ”。
  3. 输入要确认的项目的名称,然后选择“ 删除”。

如果只想删除源:

  1. 选择 “项目” ,然后从下拉菜单中选择源。
  2. 选择“设置”按钮。
  3. 在“源设置”选项卡中,选择“删除源”。
  4. 选择“删除”以确认。

清理本地开发环境:

  1. 若要停用虚拟环境,请运行以下命令:

    deactivate
    
  2. 若要删除虚拟环境,请删除创建虚拟环境的目录。

  3. .pypirc从主目录中删除该文件。

如果克隆了示例 Python 包,可以从本地计算机和 GitHub 帐户中删除存储库。

后续步骤