Meminta paket Python dari upstream dan koneksi eksternal - CodeArtifact

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Meminta paket Python dari upstream dan koneksi eksternal

Saat mengimpor versi paket Python dari pypi.org CodeArtifact , akan mengimpor semua aset dalam versi paket itu. Sementara sebagian besar paket Python berisi sejumlah kecil aset, beberapa berisi lebih dari 100 aset, biasanya untuk mendukung beberapa arsitektur perangkat keras dan interpreter Python.

Adalah umum untuk aset baru untuk dipublikasikan ke pypi.org untuk versi paket yang ada. Misalnya, beberapa proyek menerbitkan aset baru ketika versi baru Python dirilis. Ketika paket Python diinstal dari CodeArtifact withpip install, versi paket yang disimpan dalam CodeArtifact repositori diperbarui untuk mencerminkan kumpulan aset terbaru dari pypi.org.

Demikian pula, jika aset baru tersedia untuk versi paket di repositori upstream yang tidak ada di CodeArtifact repositori saat ini, mereka akan disimpan di CodeArtifact repositori saat ini ketika dijalankan. pip install

Versi paket yang ditarik

Beberapa versi paket di pypi.org ditandai sebagai ditarik, yang berkomunikasi dengan penginstal paket (seperti pip) bahwa versi tersebut tidak boleh diinstal kecuali itu adalah satu-satunya yang cocok dengan penentu versi (menggunakan salah satu atau). == === Lihat PEP_592 untuk informasi lebih lanjut.

Jika versi paket pada CodeArtifact awalnya diambil dari koneksi eksternal ke pypi.org, saat Anda menginstal versi paket dari CodeArtifact repositori, pastikan bahwa metadata menarik yang CodeArtifact diperbarui dari versi paket diambil dari pypi.org.

Bagaimana cara mengetahui apakah versi paket ditarik

Untuk memeriksa apakah versi paket ditarik CodeArtifact, Anda dapat mencoba menginstalnya. pip install packageName===packageVersion Jika versi paket ditarik, Anda akan menerima pesan peringatan yang mirip dengan berikut ini:

WARNING: The candidate selected for download or install is a yanked version

Untuk memeriksa apakah versi paket ditarik di pypi.org, Anda dapat mengunjungi daftar pypi.org versi paket di. https://pypi.org/project/packageName/packageVersion/

Menyetel status yang ditarik pada paket pribadi

CodeArtifact tidak mendukung pengaturan metadata yang ditarik untuk paket yang diterbitkan langsung ke repositori. CodeArtifact

Mengapa CodeArtifact tidak mengambil metadata atau aset terbaru yang ditarik untuk versi paket?

Biasanya, CodeArtifact memastikan bahwa ketika versi paket Python diambil dari CodeArtifact repositori, metadata yang ditarik adalah dengan nilai terbaru di pypi.org. up-to-date Selain itu, daftar aset dalam versi paket juga terus diperbarui dengan set terbaru di pypi.org dan repositori hulu CodeArtifact apa pun. Ini benar apakah Anda menginstal versi paket untuk pertama kalinya dan CodeArtifact mengimpornya dari pypi.org ke CodeArtifact repositori Anda, atau jika Anda telah menginstal paket sebelumnya. Namun, ada kasus ketika klien manajer paket, seperti pip, tidak akan menarik metadata terbaru yang ditarik dari pypi.org atau repositori upstream. Sebaliknya, CodeArtifact akan mengembalikan data yang sudah disimpan di repositori Anda. Bagian ini menjelaskan tiga cara hal ini dapat terjadi:

Konfigurasi hulu: Jika koneksi eksternal ke pypi.org dihapus dari repositori atau upstream menggunakan disassociate-external-connection, metadata yang ditarik tidak akan lagi di-refresh dari pypi.org. Demikian pula, jika Anda menghapus repositori upstream, aset dari repositori yang dihapus dan upstream repositori yang dihapus tidak akan lagi tersedia untuk repositori saat ini. Hal yang sama berlaku jika Anda menggunakan kontrol asal CodeArtifact paket untuk mencegah versi baru dari paket tertentu ditarik— pengaturan upstream=BLOCK akan memblokir metadata yang ditarik agar tidak disegarkan.

Status versi paket: Jika Anda menyetel status versi paket ke apa pun kecuali Published atauUnlisted, metadata dan aset yang ditarik dari versi paket tidak akan di-refresh. Demikian pula, jika Anda mengambil versi paket tertentu (katakanlahtorch 2.0.1) dan versi paket yang sama ada di repositori upstream dengan status yang tidak Published atauUnlisted, ini juga akan memblokir metadata yang ditarik dan propagasi aset dari repositori upstream ke repositori saat ini. Ini karena status versi paket lainnya merupakan indikasi bahwa versi tersebut tidak dimaksudkan untuk dikonsumsi lagi di repositori apa pun.

Penerbitan langsung: Jika Anda mempublikasikan versi paket tertentu langsung ke CodeArtifact repositori, ini akan mencegah metadata yang ditarik dan penyegaran aset untuk versi paket dari repositori hulu dan pypi.org. Misalnya, Anda mengunduh aset dari versi pakettorch 2.0.1, sepertitorch-2.0.1-cp311-none-macosx_11_0_arm64.whl, menggunakan browser web dan kemudian mempublikasikannya ke CodeArtifact repositori Anda menggunakan benang sebagai. torch 2.0.1 CodeArtifact melacak bahwa versi paket memasuki domain dengan menerbitkan langsung ke repositori Anda, bukan dari koneksi eksternal ke pypi.org atau repositori upstream. Dalam hal ini, metadata yang ditarik CodeArtifact tidak disinkronkan dengan repositori upstream atau pypi.org. Hal yang sama berlaku jika Anda mempublikasikan torch 2.0.1 ke repositori upstream— keberadaan versi paket akan memblokir propagasi metadata dan aset yang ditarik ke repositori lebih jauh ke bawah grafik hulu.