在 Artifact Registry 中存储 Python 软件包

本快速入门介绍如何设置私有 Artifact Registry Python 代码库、上传软件包,然后安装该软件包。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Artifact Registry API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Artifact Registry API。

    启用 API

启动 Cloud Shell

在本快速入门中,您将使用 Cloud Shell,这是一个用于管理 Google Cloud 上托管的资源的 shell 环境。

Cloud Shell 预安装有 Google Cloud CLI 和 Python。gcloud CLI 提供了 Google Cloud 的主要命令行界面。

启动 Cloud Shell:

  1. 转到 Google Cloud 控制台。

    Google Cloud 控制台

  2. 在 Google Cloud 控制台工具栏中,点击激活 Cloud Shell

控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。

安装必需的软件包

Twine 是用于发布 Python 软件包的工具。您将使用 Twine 将软件包上传到 Artifact Registry。

在本快速入门中,您将使用 Cloud Shell 随附的 Python 安装。此默认安装包括 Artifact Registry 密钥环后端,用于处理使用 Artifact Registry 的身份验证。如果您在 Cloud Shell 之外创建虚拟环境或设置 Python,则必须安装密钥环后端以进行身份验证。 如需了解详情,请参阅使用密钥环进行身份验证

如需安装 Twine,请运行以下命令:

pip install twine

您现在可以设置 Artifact Registry 了。

创建代码库

为您的软件包创建代码库。

  1. 运行以下命令,在位置 us-central1 中名为 quickstart-python-repo 的当前项目中创建一个新的 Python 软件包代码库。

    gcloud artifacts repositories create quickstart-python-repo \
        --repository-format=python \
        --location=us-central1 \
        --description="Python package repository"
    
  2. 运行以下命令确认已创建代码库:

    gcloud artifacts repositories list
    
  3. 为了简化 gcloud 命令,请将默认代码库设置为 quickstart-python-repo,并将默认位置设置为 us-central1。设置以上值之后,您无需在需要代码库或位置的 gcloud 命令中指定这些值。

    如需设置代码库,请运行以下命令:

    gcloud config set artifacts/repository quickstart-python-repo
    

    如需设置位置,请运行以下命令:

    gcloud config set artifacts/location us-central1
    

    如需详细了解这些命令,请参阅 gcloud config set 文档。

配置身份验证

Artifact Registry 密钥环后端使用应用默认凭据 (ADC) 查找您的凭据。ADC 是一种在您的环境中查找凭据的策略。

在本快速入门中,您将执行以下操作:

  • 为 ADC 生成用户凭据。在生产环境中,您应该使用服务帐号并通过 GOOGLE_APPLICATION_CREDENTIALS 环境变量提供凭据。
  • piptwine 命令中添加 Artifact Registry 代码库网址,这样您就无需使用代码库网址配置 pip 和 Twine。

如需为 ADC 生成凭据,请运行以下命令:

gcloud auth application-default login

如需详细了解身份验证方法以及如何向 pip 和 Twine 配置添加代码库,请参阅设置向 Python 软件包代码库进行的身份验证

获取示例软件包

当您构建 Python 项目时,分发文件将保存在 Python 项目的 dist 子目录中。为简化本快速入门,您需要下载预构建的软件包文件。

  1. 创建一个名为 python-quickstart 的 Python 项目文件夹。

    mkdir python-quickstart
    
  2. 创建一个名为 dist 的子目录,然后切换到该目录。

    mkdir python-quickstart/dist
    cd python-quickstart/dist
    
  3. 下载 Python 打包用户指南教程打包 Python 项目中使用的示例 Python 软件包。

    pip download sampleproject
    

    该命令会下载 sampleproject 软件包及其依赖项 peppercorn

将软件包上传到代码库

使用 Twine 将软件包上传到您的代码库。

  1. dist 目录切换到父级 python-quickstart 目录。

    cd ..
    
  2. 将软件包从 dist 目录上传到代码库。

    python3 -m twine upload --repository-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/ dist/*
    

    当您使用 python3 -m 运行该命令时,Python 会找到 twine 并运行该命令。如果 twine 命令位于您的系统路径下,您可以在不使用 python3 -m 的情况下运行该命令。

Twine 会将 sampleprojectpeppercorn 都上传到您的代码库。

查看代码库中的软件包

如需验证您的软件包是否已添加,请在 quickstart-python-repo 代码库中列出这些软件包。

运行以下命令:

gcloud artifacts packages list --repository=quickstart-python-repo

如需查看软件包的版本,请运行以下命令:

gcloud artifacts versions list --package=PACKAGE

其中 PACKAGE 是软件包 ID。

安装软件包

运行以下命令以安装软件包:

pip install --index-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/simple/ sampleproject

问题排查

默认情况下,pip 和 Twine 等工具不会返回详细的错误消息。如果遇到错误,请使用 --verbose 标志重新运行该命令以获取更详细的输出。如需了解详情,请参阅 Python 软件包问题排查

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

在移除代码库之前,请确保已在其他位置保存了您要保留的任何软件包。

如需删除代码库,请执行以下操作:

  1. 如需删除 quickstart-python-repo 代码库,请运行以下命令:

    gcloud artifacts repositories delete quickstart-python-repo
    
  2. 如果要移除您为活跃 gcloud 配置配置的默认代码库和位置设置,请运行以下命令:

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

后续步骤