本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從上流和外部連接請求 Python 包
從 pypi.org
對於現有的軟件包版本,新資產發佈到 pypi.org 是很常見的。例如,某些專案會在新版 Python 發行時發佈新資產。 CodeArtifact 使用安裝 Python 套件時pip install
,會更新保留在 CodeArtifact 儲存庫中的套件版本,以反映來自 pypi.org 的最新資產集。
同樣地,如果上游 CodeArtifact 儲存庫中不存在於目前 CodeArtifact 儲存庫中的套件版本可用新資產,則在執行時pip install
,它們將保留在目前存放庫中。
猛拉包版本
pypi.org 中的某些套件版本會標示為「抽籤」,它會與套件安裝程式(例如 pip)通訊,除非該版本是唯一符合版本說明符的版本(使用或),否則不應安裝該版本。==
===
如需詳細資訊,請參閱 PEP_592
如果中的套件版本原本 CodeArtifact 是從 pypi.org
如何知道軟件包版本是否被拉扯
要檢查軟件包版本是否被拉入 CodeArtifact,您可以嘗試使用pip install
. 如果套件版本遭到抽取,您將會收到類似下列內容的警告訊息:packageName
===packageVersion
WARNING: The candidate selected for download or install is a yanked version
若要檢查 pypi.org 中是否有套件版本被抽取,您可以瀏覽套件版本的 pypi.org 清https://pypi.org/project/
packageName
/packageVersion
/
在私人包裹上設置被抽取狀態
CodeArtifact 不支援為直接發佈至 CodeArtifact 儲存庫的套件設定抽取的中繼資料。
為什麼 CodeArtifact 不獲取軟件包版本的最新抽取元數據或資產?
通常情況下, CodeArtifact 確保當從 CodeArtifact 存儲庫中提取 Python 包版本時,被抽取的元數據 up-to-date 與 pypi.org 上的最新值。
上游配置:如果與 pypi.org 的外部連接從存儲庫或使用其上流中刪除 disassociate-external-connection,則將不再從 pypi.org 刷新抽取的元數據。同樣地,如果您移除上游儲存庫,則目前儲存庫中的資產將無法再使用已移除儲存庫的上行串流。如果您使用 CodeArtifact 套件來源控制項來防止提取特定套件的新版本,也是如此 — 設定upstream=BLOCK
會阻止重新整理被抽取的中繼資料。
P@@ ackage 版本狀態:如果您將軟件包版本的狀態設置為除了Published
或之外的任何內容Unlisted
,則不會刷新包版本的拆卸元數據和資產。同樣,如果您正在獲取特定的軟件包版本(例如torch 2.0.1
),並且上游存儲庫中存在相同的軟件包版本,其狀態為不是Published
或Unlisted
,這也將阻止從上游存儲庫到當前存儲庫的抽取元數據和資產傳播。這是因為其他套件版本狀態表示這些版本不會再在任何儲存庫中使用。
直接發佈:如果您將特定套件版本直接發佈到 CodeArtifact 儲存庫中,這將防止從其上游儲存庫和 pypi.org 對套件版本進行抽取的中繼資料和資產重新整理。例如,假設您從軟件包版本(例如torch 2.0.1
,使用 Web 瀏覽器)下載資產torch-2.0.1-cp311-none-macosx_11_0_arm64.whl
,然後使用麻線作為torch 2.0.1
將其發佈到 CodeArtifact 存儲庫。 CodeArtifact 追蹤套件版本是透過直接發佈到您的儲存庫而不是從外部連線到 pypi.org 或上游儲存庫來進入網域。在這種情況下, CodeArtifact 不會使被抽取的元數據與上游存儲庫或 pypi.org 保持同步。如果您發佈torch 2.0.1
到上游存放庫中,情況也是如此 — 套件版本的存在將會阻止向上游圖形下方延伸的中繼資料和資產到儲存庫的傳播。