Python パッケージを Artifact Registry に保存する
このクイックスタートでは、限定公開の Artifact Registry Python リポジトリを設定し、パッケージをアップロードして、パッケージをインストールする方法を示します。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
Cloud Shell を起動する
このクイックスタートでは、Google Cloud でホストされているリソースを管理するためのシェル環境である Cloud Shell を使用します。
Cloud Shell には、Google Cloud CLI と Python がプリインストールされています。gcloud CLI は、Google Cloud への主要なコマンドライン インターフェースを提供します。
Cloud Shell を起動します。
Google Cloud Console に移動します。
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 をセットアップする準備が整いました。
リポジトリを作成する
パッケージのリポジトリを作成します。
次のコマンドを実行して、現在のプロジェクトでロケーション
us-central1
にquickstart-python-repo
いう新しい Python パッケージ リポジトリを作成します。gcloud artifacts repositories create quickstart-python-repo \ --repository-format=python \ --location=us-central1 \ --description="Python package repository"
次のコマンドを実行して、リポジトリが作成されたことを確認します。
gcloud artifacts repositories list
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
サブディレクトリに保存されます。このクイックスタートを簡素化するために、ビルド済みのパッケージ ファイルをダウンロードします。
python-quickstart
という名前の Python プロジェクト フォルダを作成します。mkdir python-quickstart
dist
という名前のサブディレクトリを作成し、そのディレクトリに変更します。mkdir python-quickstart/dist cd python-quickstart/dist
Python パッケージング ユーザーガイドのチュートリアル「Python プロジェクトのパッケージ化」で使用されている Python パッケージのサンプルをダウンロードします。
pip download sampleproject
このコマンドは、
sampleproject
パッケージとその依存関係であるpeppercorn
をダウンロードします。
パッケージをリポジトリにアップロードする
Twine を使用して、パッケージをリポジトリにアップロードします。
dist
ディレクトリから、親のpython-quickstart
ディレクトリに移動します。cd ..
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 は、sampleproject
と peppercorn
の両方をリポジトリにアップロードします。
リポジトリ内のパッケージを表示する
パッケージが追加されたことを確認するには、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 アカウントに課金されないようにするには、次の手順を行います。
リポジトリを削除する前に、保持する必要があるパッケージが別の場所で使用可能であることを確認してください。
リポジトリを削除するには、次の手順を行います。
quickstart-python-repo
リポジトリを削除するには、次のコマンドを実行します。gcloud artifacts repositories delete quickstart-python-repo
アクティブな
gcloud
構成のデフォルトのリポジトリとロケーション設定を削除するには、次のコマンドを実行します。gcloud config unset artifacts/repository gcloud config unset artifacts/location
次のステップ
- 認証の構成の詳細を確認する
- リポジトリの管理について確認する
- パッケージの管理について確認する
- DevOps に関するリソースを読む。また、研究プログラムについて確認する。