Mengelola paket Python

Halaman ini menjelaskan cara menambahkan, melihat, dan menghapus paket Python dan versi paket.

Sebelum memulai

  1. Instal dan lakukan inisialisasi Google Cloud CLI.

    Google Cloud CLI versi 354.0.0 atau yang lebih baru diperlukan untuk menjalankan perintah bagi repositori Python. Anda dapat memeriksa versi dengan perintah:

    gcloud version
    
  2. Jika repositori target tidak ada, buat repositori paket Python baru.

  3. Pastikan Python 3 telah diinstal. Untuk mengetahui petunjuk penginstalan, lihat Google Cloud tutorial untuk menyiapkan Python.

  4. (Opsional) Konfigurasi default untuk perintah gcloud.

  5. Jika Anda menggunakan autentikasi keyring dengan kredensial gcloud, login ke Google Cloud CLI dengan akun pengguna atau akun layanan Anda.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola paket, minta administrator Anda untuk memberikan peran IAM berikut di repositori:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menambahkan paket

Mode repositori: standar

Saat Anda membangun project Python, file distribusi akan disimpan di subdirektori dist di project Anda. Kemudian, Anda dapat menggunakan Twine untuk mengupload paket ke repositori standar.

Kami merekomendasikan praktik terbaik berikut untuk paket Anda:

  • Gunakan nama unik untuk paket pribadi Anda agar tidak cocok dengan nama paket di pypi.org, terutama jika konfigurasi pip Anda menyertakan beberapa indeks paket.
  • Gunakan spesifikasi ID versi di PEP 440 untuk nomor versi paket Anda. Secara default, pip hanya menginstal rilis stabil. Fitur ini menggunakan spesifikasi ID versi untuk membedakan versi stabil dari versi pra-rilis dan untuk mengurai persyaratan apa pun untuk versi yang akan diinstal.

Untuk menambahkan paket:

  1. Instal Twine.

    pip install twine
    
  2. Ubah ke direktori project Python Anda.

  3. Upload file distribusi ke repositori dari subdirektori dist project. Jalankan perintah berikut:

    twine upload dist/*
    

    Anda dapat menentukan repositori tertentu dengan flag --repository-url.

    twine upload --repository-url https://LOCATION-python.pkg.dev/PROJECT/REPOSITORY/ dist/*
    

Melihat paket dan versi

Mode repositori: standar, jarak jauh

Untuk melihat paket dan versi paket menggunakan Google Cloud konsol atau gcloud:

Konsol

  1. Buka halaman Repositories di Google Cloud console.

    Buka halaman Repositori

  2. Di daftar repositori, klik repositori yang sesuai.

    Halaman Packages mencantumkan paket di repositori.

  3. Klik paket untuk melihat versi paket.

gcloud

Untuk menampilkan daftar paket dalam repositori, jalankan perintah berikut:

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

Ganti kode berikut:

  • REPOSITORY adalah nama repositori. Jika Anda mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.
  • LOCATION adalah lokasi repositori regional atau multi-regional. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.

Untuk melihat versi paket, jalankan perintah berikut:

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

Ganti kode berikut:

  • PACKAGE adalah ID paket atau ID yang sepenuhnya memenuhi syarat untuk paket.
  • REPOSITORY adalah nama repositori. Jika Anda mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.
  • LOCATION adalah lokasi repositori regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.

Untuk repositori jarak jauh, daftar yang ditampilkan harus menyertakan semua dependensi langsung dan transitif.

Mencantumkan file

Mode repositori: standar, jarak jauh

Anda dapat mencantumkan file dalam repositori, file dalam semua versi paket yang ditentukan, atau file dalam versi tertentu dari suatu paket.

Untuk semua perintah berikut, Anda dapat menetapkan jumlah maksimum file yang akan ditampilkan dengan menambahkan tanda --limit ke perintah.

Untuk mencantumkan semua file dalam project, repositori, dan lokasi default saat nilai default dikonfigurasi:

gcloud artifacts files list

Untuk mencantumkan file dalam project, repositori, dan lokasi tertentu, jalankan perintah:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Untuk mencantumkan file untuk semua versi paket tertentu:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Untuk mencantumkan file untuk versi paket tertentu:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION

Ganti nilai berikut:

  • LOCATION: lokasi regional atau multi-regional repositori.
  • PROJECT: Google Cloud project ID Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
  • REPOSITORY: nama repositori tempat penyimpanan image.
  • PACKAGE: nama paket.
  • VERSION: versi paket.

Contoh

Pertimbangkan informasi paket berikut:

  • Project: my-project
  • Repository: my-repo
  • Lokasi repositori: us-west1
  • Paket: my-app

Perintah berikut mencantumkan semua file di repositori my-repo di lokasi us-west1 dalam project default:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
Perintah berikut mencantumkan file dalam paket versi 1.0.

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=1.0

Menginstal paket

Mode repositori: standar, jarak jauh, virtual

Gunakan perintah pip untuk menginstal paket.

Untuk menginstal rilis stabil terbaru paket, jalankan perintah:

pip install PACKAGE

Untuk repositori standar, Anda mendownload paket langsung dari repositori.

Untuk repositori jarak jauh, Anda mendownload salinan paket yang di-cache dan dependensinya. Jika salinan yang di-cache tidak ada, repositori jarak jauh akan mendownload paket dari sumber upstream dan meng-cache-nya sebelum menayangkannya kepada Anda. Anda dapat memverifikasi bahwa repositori jarak jauh mengambil paket dari sumber upstream dengan melihat daftar paket di repositori.

Untuk repositori virtual, Artifact Registry menelusuri repositori upstream untuk paket yang diminta.

  • Repositori jarak jauh upstream akan mendownload dan meng-cache paket yang diminta jika salinan yang di-cache tidak ada. Repositori virtual hanya menayangkan paket yang diminta, tidak menyimpannya.
  • Jika Anda meminta versi yang tersedia di lebih dari satu repositori upstream, Artifact Registry akan memilih repositori upstream yang akan digunakan berdasarkan setelan prioritas yang dikonfigurasi untuk repositori virtual.

Misalnya, pertimbangkan repositori virtual dengan setelan prioritas berikut untuk repositori upstream:

  • main-repo: Prioritas ditetapkan ke 100
  • secondary-repo1: Prioritas ditetapkan ke 80.
  • secondary-repo2: Prioritas ditetapkan ke 80.
  • test-repo: Prioritas ditetapkan ke 20.

main-repo memiliki nilai prioritas tertinggi, sehingga repositori virtual selalu menelusurinya terlebih dahulu.

secondary-repo1 dan secondary-repo2 memiliki prioritas yang ditetapkan ke 80. Jika paket yang diminta tidak tersedia di main-repo, Artifact Registry akan menelusuri repositori ini berikutnya. Karena keduanya memiliki nilai prioritas yang sama, Artifact Registry dapat memilih untuk menayangkan paket dari salah satu repositori jika versi tersedia di keduanya.

test-repo memiliki nilai prioritas terendah dan akan menayangkan artefak yang disimpan jika tidak ada repositori upstream lain yang memilikinya.

Informasi tambahan

Secara default, pip menginstal versi stabil paket dan mengabaikan versi pra-rilis. PEP 440 menentukan spesifikasi ID versi Python yang digunakan pengguna pip untuk mengurai nomor versi, termasuk versi pra-rilis.

Untuk menyertakan versi pra-rilis saat pip menelusuri paket yang akan diinstal, tambahkan tanda --pre ke perintah Anda.

pip install --pre PACKAGE

Untuk menentukan versi atau rentang versi yang diperlukan, sertakan penentu persyaratan. Anda dapat menyertakan persyaratan versi langsung dalam perintah atau menggunakan file persyaratan.

Misalnya, perintah ini menentukan bahwa versi minimum my-package adalah versi pengembangan 1.0.dev0.

pip install --pre my-package>=1.0.dev0

Rilis stabil dianggap lebih baru daripada pra-rilis, jadi jika versi 1.0 ada di repositori, pip akan memilih versi 1.0 daripada versi pra-rilis.

Jika Anda tidak menentukan repositori, konfigurasi pip Anda di pip.conf akan menentukan cara pip menelusuri paket.

  • Jika Anda mengonfigurasi repositori Artifact Registry dengan setelan index-url dan tidak ada indeks paket lain yang dikonfigurasi, pip hanya menelusuri paket di repositori Artifact Registry Anda.
  • Jika Anda menggunakan repositori virtual, Artifact Registry menggunakan prioritas yang dikonfigurasi dalam kebijakan upstream untuk memilih paket saat beberapa repositori upstream memiliki versi paket yang diminta. Jika dua repositori dengan paket memiliki prioritas yang sama, Artifact Registry akan menyajikannya dari salah satu repositori.
  • Jika Anda mengonfigurasi pip dengan setelan extra-index-url atau jika Anda mengonfigurasi beberapa indeks paket, pip akan menelusuri pypi.org dan indeks paket lain yang dikonfigurasi, lalu memilih versi terbaru paket.

Anda dapat mengganti setelan index-url atau extra-index-url dalam file persyaratan. Anda juga dapat menggunakan tanda untuk setelan ini dalam perintah pip. Misalnya, perintah ini mengganti index-url dengan repositori Artifact Registry.

pip install --index-url https://us-east1-python.pkg.dev/my-project/python-repo/simple/ my-package

Untuk mengetahui informasi selengkapnya tentang penginstalan paket, lihat dokumentasi Python Packaging.

Menghapus paket dan versi

Mode repositori: standar, jarak jauh

Anda dapat menghapus paket dan semua versinya, atau menghapus versi tertentu.

  • Setelah menghapus paket, Anda tidak dapat mengurungkan tindakan tersebut.
  • Untuk repositori jarak jauh, hanya salinan paket yang di-cache yang dihapus. Sumber upstream tidak terpengaruh. Jika Anda menghapus paket yang di-cache, Artifact Registry akan mendownload dan men-cache-nya lagi saat repositori menerima permintaan untuk versi paket yang sama pada waktu berikutnya.

Sebelum menghapus paket atau versi paket, pastikan Anda telah menyampaikan atau mengatasi dependensi penting apa pun di dalamnya.

Untuk menghapus paket:

Konsol

  1. Buka halaman Repositories di Google Cloud console.

    Buka halaman Repositori

  2. Di daftar repositori, klik repositori yang sesuai.

    Halaman Packages mencantumkan paket di repositori.

  3. Pilih paket yang ingin dihapus.

  4. Klik HAPUS.

  5. Di kotak dialog konfirmasi, klik DELETE.

gcloud

Jalankan perintah berikut:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Ganti kode berikut:

  • PACKAGE adalah nama paket di repositori.
  • REPOSITORY adalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.
  • LOCATION adalah lokasi repositori regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.

Flag --async menyebabkan perintah segera ditampilkan, tanpa menunggu operasi yang sedang berlangsung selesai.

Untuk menghapus versi paket:

Konsol

  1. Buka halaman Repositories di Google Cloud console.

    Buka halaman Repositori

  2. Di daftar repositori, klik repositori yang sesuai.

    Halaman Packages mencantumkan paket di repositori.

  3. Klik paket untuk melihat versi paket tersebut.

  4. Pilih versi yang ingin dihapus.

  5. Klik HAPUS.

  6. Di kotak dialog konfirmasi, klik DELETE.

gcloud

Jalankan perintah berikut:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Ganti kode berikut:

  • VERSION adalah nama versi yang akan dihapus.
  • PACKAGE adalah nama paket di repositori.
  • REPOSITORY adalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.
  • LOCATION adalah lokasi repositori regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.

Flag --async menyebabkan perintah segera ditampilkan, tanpa menunggu operasi yang sedang berlangsung selesai.

Langkah berikutnya