View a markdown version of this page

Python 相容性 - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Python 相容性

CodeArtifact 支援 、piptwineuv和其他 Python 用戶端/simple/<project>/使用的 PyPI Simple Repository API。用戶端會使用Accept請求標頭在 HTML 和 JSON 回應之間進行選擇。

Simple Repository API 支援

CodeArtifact 實作 PyPI Simple Repository API 的 1.1 版,如 PEP 503PEP 691PEP 700 所定義。

/simple/<project>/ 端點支援下列Accept標頭內容類型:

  • application/vnd.pypi.simple.v1+json:JSON 回應 (PEP 691、PEP 700)。

  • application/vnd.pypi.simple.v1+html:HTML 回應 (PEP 503)。

  • application/vnd.pypi.simple.latest+json: 解析為最新支援的 JSON 版本。

  • application/vnd.pypi.simple.latest+html:解析為最新支援的 HTML 版本。

  • text/html*/*或無Accept標頭:HTML 回應 (預設為回溯相容性)。

如果用戶端指定的Accept標頭不包含任何支援的內容類型,CodeArtifact 會傳回 406 Not Acceptable

JSON 回應包括 PEP 700 欄位 versionssizeupload-time以及 PEP 691 欄位。HTML 回應具有與每個成品連結上的data-upload-time屬性相同的每個成品上傳時間。

每個資產中繼資料擷取啟用之前快取的套件版本可能缺少 sizeupload-time 欄位。當用戶端透過 JSON Simple Repository API 請求這類套件時,CodeArtifact 會從上游登錄檔重新擷取中繼資料,並填入缺少的欄位。不需要客戶動作,且對相同套件版本的後續請求會傳回完整的中繼資料。

pip 23.0 和更新版本,並預設uv傳送 JSON Accept標頭,因此大多數用戶端無需任何額外組態即可接收 JSON。

範例:請求專案的 JSON

下列範例使用 curl來擷取requests專案的 JSON Simple Repository API 回應。從 取得儲存庫 URLaws codeartifact get-repository-endpoint,以及從 取得授權字符aws codeartifact get-authorization-token

curl --header "Accept: application/vnd.pypi.simple.v1+json" \ --header "Authorization: Bearer $CODEARTIFACT_AUTH_TOKEN" \ "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/pypi/my_repo/simple/requests/"
注意

CodeArtifact PyPI 端點接受 HTTP 基本身分驗證 (使用者名稱 aws,密碼設定為您的授權字符) 或承載字符身分驗證。本指南其他位置顯示的 piptwine組態使用 HTTP Basic。

下列範例顯示典型的 JSON 回應 (為了簡潔起見而截斷)。versionssizeupload-time 欄位來自 PEP 700;hashesrequires-pythonyanked 欄位來自 PEP 691。

{ "meta": { "api-version": "1.1" }, "name": "requests", "versions": [ "2.31.0", "2.32.0", "2.32.3" ], "files": [ { "filename": "requests-2.32.3-py3-none-any.whl", "url": "2.32.3/requests-2.32.3-py3-none-any.whl", "hashes": { "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", "md5": "df6df19f49fc7ae54ee5ff2dd3d22d2c" }, "requires-python": ">=3.8", "size": 64928, "upload-time": "2024-05-29T15:37:49.123456Z", "yanked": false } ] }

不支援的 PyPI API APIs

CodeArtifact 不支援下列 PyPI APIs:

  • PyPI XML-RPC API

  • PyPI Warehouse JSON API,可在 下提供專案層級和發行層級的 JSON 端點/pypi/。這是與 Simple Repository API 的 PEP 691 JSON 變體不同的 API,CodeArtifact 支援此變體。

  • 專案清單端點 /simple/。僅/simple/<project>/支援專案詳細資訊端點。

如需 PyPI APIs的詳細資訊,請參閱 Python Packaging Authority 的 GitHub 網站上的舊版 API 參考。

pip 命令支援

下列各節摘要說明 CodeArtifact 儲存庫支援的 pip 命令,以及不支援的特定命令。

支援與儲存庫互動的命令

本節列出pip命令,其中pip用戶端向已設定的登錄檔提出一或多個請求。已驗證這些命令在針對 CodeArtifact 儲存庫調用時可正常運作。

命令 說明

安裝

安裝套件。

下載

下載套件。

CodeArtifact 不會實作 pip search。如果您已pip設定 CodeArtifact 儲存庫,執行 pip search會搜尋並顯示來自 PyPI 的套件。

支援的用戶端命令

這些命令不需要與儲存庫進行任何直接互動,因此 CodeArtifact 不需要執行任何動作來支援儲存庫。

命令 說明

解除安裝

解除安裝套件。

凍結

以要求格式輸出已安裝的套件。

清單

列出已安裝的套件。

show

顯示已安裝套件的相關資訊。

檢查

確認已安裝的套件具有相容的相依性。

組態

管理本機和全域組態。

車輪

根據您的需求建置車輪。

雜湊

套件封存的運算雜湊。

完成

協助完成命令。

debug

顯示適用於偵錯的資訊。

說明

顯示 命令的說明。