Python パッケージを Artifact Registry に保存する

このクイックスタートでは、非公開の Artifact Registry Python リポジトリを設定して、パッケージをアップロードし、パッケージをインストールする方法について説明します。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $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 を起動する

このクイックスタートでは、Google Cloud でホストされているリソースを管理するためのシェル環境である Cloud Shell を使用します。

Cloud Shell には、Google Cloud CLI と Python がプリインストールされています。gcloud CLI は、Google Cloud への主要なコマンドライン インターフェースを提供します。

Cloud Shell を起動します。

  1. Google Cloud Console に移動します。

    Google Cloud Console

  2. Google Cloud コンソールのツールバーで、「Cloud Shell をアクティブにする」をクリックします:

コンソールの下部にあるフレーム内で Cloud 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-central1quickstart-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 のユーザー認証情報を生成します。本番環境では、サービス アカウントを使用して、GOOGLE_APPLICATION_CREDENTIALS 環境変数で認証情報を指定する必要があります。
  • pip コマンドと twine コマンドに Artifact Registry リポジトリ URL を含めると、リポジトリ URL を使用して 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
    

次のステップ