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 に関するリソースを読む。また、研究プログラムについて確認する。