使用命令列發佈及取用 Python 套件 (CLI)

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Artifacts 可讓您建立、裝載及共用 Python 套件與您的小組或組織。 您可以從本機開發環境中的命令行使用 Azure Artifacts 摘要來發佈及取用 Python 套件。

在本文中,您將了解如何:

  • 建立 Azure Artifacts 摘要。
  • 使用 Python artifacts-keyring 套件或個人存取令牌 (PAT) 設定驗證。
  • 將 Python 套件發佈至您的摘要。
  • 從您的摘要取用 Python 套件。

若要在 Azure Pipelines 中發佈及取用套件,請參閱 使用 Azure Pipelines 發佈 Python 套件。

必要條件

若要執行下列步驟,您必須具備:

  • Azure DevOps 組織。 免費建立一個
  • 具有封裝>讀取範圍的個人存取令牌 (PAT)。 若要建立一個,請參閱 建立 PAT
  • Azure DevOps 專案。 如果您沒有專案, 請建立專案
  • 安裝在本機電腦上的 Python 3.9 或更新版本。 在這裡下載 Python。
  • pip 24.0 和 twine 5.0.0 或更高版本。
  • 要從本機計算機發佈至摘要的 Python 套件。
  • 如果使用範例 Python 套件:
    • GitHub 帳戶。 如果您還沒有 GitHub 帳戶,請建立免費的 GitHub 帳戶
    • 安裝在本機電腦上的 git。
  • GitHub 帳戶。 如果您還沒有 GitHub 帳戶,請建立免費的 GitHub 帳戶
  • 存取 Azure DevOps Server 集合。
  • 具有封裝>讀取範圍的個人存取令牌 (PAT)。 若要建立一個,請參閱 建立 PAT
  • Azure DevOps 專案。 如果您沒有專案, 請建立專案
  • 在本機開發環境中安裝 Python 3.9 或更新版本。
  • pip 24.0 和 twine 5.0.0 或更高版本。
  • 如果使用範例 Python 套件:
    • GitHub 帳戶。 如果您還沒有 GitHub 帳戶,請建立免費的 GitHub 帳戶
    • 安裝在本機電腦上的 git。

建立 Azure Artifacts 摘要

如果您沒有摘要,請使用下列步驟來建立一個摘要。

  1. 登入您的 Azure DevOps 組織,然後移至您的專案。

  2. 選取 [ 成品],然後選取 [ 建立摘要]。

    A screenshot showing how to create a feed.

  3. 為您的摘要輸入下列資訊:

    1. 輸入摘要的描述性 名稱
    2. 定義其 可見度 (指出誰可以在摘要內檢視套件)。
    3. 選取是否要使用公用來源的套件,例如 pypi.org。
    4. 指定摘要的範圍
  4. 選取 建立

  1. 移至您的 Azure DevOps 集合,選取您的專案。

  2. 選取 [ 成品],然後選取 [ 建立摘要]。

    A screenshot showing how to create a feed in DevOps Server.

  3. 為您的摘要輸入下列資訊:

    1. 輸入摘要的描述性 名稱
    2. 定義其 可見度 (指出誰可以在摘要內檢視套件)。
    3. 選取是否要使用公用來源的套件,例如 pypi.org。
    4. 指定摘要的範圍
  4. 選取 建立

  1. 移至您的 Azure DevOps 集合,選取您的專案。

  2. 選取 [ 成品],然後選取 [ 建立摘要 ] 以建立新的摘要。

  3. 為您的摘要輸入下列資訊:

    1. 輸入摘要的描述性 名稱
    2. 定義其 可見度 (指出誰可以在摘要內檢視套件)。
    3. 選取是否要使用公用來源的套件,例如 pypi.org。
    4. 指定摘要的範圍
  4. 選取 建立

  1. 移至您的 Azure DevOps 集合,選取您的專案。

  2. 選取 [ 成品],然後選取 [ 建立摘要 ] 以建立新的摘要。

  3. 為您的摘要輸入下列資訊:

    1. 輸入摘要的描述性 名稱
    2. 定義其 可見度 (指出誰可以在摘要內檢視套件)。
    3. 選擇是否要使用來自公用來源的套件,例如 pypi.org。
  4. 選取 建立

建立本機 Python 套件

您需要 Python 套件才能發佈至您的摘要。 如果您沒有要發佈的套件,您可以從 GitHub 複製範例 Python 套件。

複製範例 Python 套件

使用下列步驟,從 GitHub 使用範例 Python 套件。

  1. 移至下列 GitHub 存放庫:

    https://github.com/microsoft/python-package-template
    
  2. 將存放庫分支至您的 GitHub 帳戶。

  3. 移至分支存放庫,然後選取 [ 程序代碼]。

  4. 複製分支存放庫的URL。

  5. 從本機電腦上的 CLI,使用您從分支存放庫複製的 URL,將存放庫複製到本機電腦。

    git clone <REPOSIORY_URL>
    
  6. 將目錄變更為複製的存放庫。

    cd python-package-template
    

建置您的套件

若要建置轉輪和來源散發,請在專案目錄中執行下列命令:

pip install --upgrade build
python -m build

如果您的 Python 專案有 setup.py 檔案,您可以使用下列命令來建置套件:

python setup.py sdist bdist_wheel

要摘要的 連線

線上至摘要以發佈或取用 Python 套件的主要方式有兩種:

  1. 使用 artifacts-keyring 套件,其會自動為您設定驗證。
  2. 使用 PAT 手動設定認證。

注意

較新版本的 Ubuntu 不支援 artifacts-keyring

注意

如果您的組織使用防火牆或 Proxy 伺服器,請確定您允許 Azure Artifacts 網域 URL 和 IP 位址

設定 artifacts-keyring 以進行驗證

artifacts-keyring 套件可與 Python Keyring 套件搭配運作,可讓您設定驗證來發佈和取用您的摘要中的 Python 套件。 pip 和 twine 都會使用 Python Keyring 套件來尋找認證。

重要

您必須有 pip 19.2 和 twine 1.13.0 或更高版本,才能使用 artifacts-keyring。 如需詳細資訊,請參閱 使用需求

如果您選擇使用 artifacts-keyring,您必須先安裝套件,才能使用它。

在提升許可權的命令提示字元視窗中,執行下列命令以安裝 artifacts-keyring 套件:

pip install artifacts-keyring

發佈 Python 套件

您可以使用 artifacts-keyring 套件或 PAT 驗證,將 Python 套件發佈至您的摘要。

使用 artifacts-keyring 發佈套件

  1. 選取 [連線 以從您的摘要摘要

    A screenshot highlighting the connect to feed.

  2. 選取 [對應項 ],然後從 [項目設定 ] 區段複製存放庫 URL。

    A screenshot of instructions to connect to feed with twine.

  3. 若要將套件發佈至摘要,請執行下列命令,將 <FEED_URL 取代為您從 連線> 複製到摘要對話框的存放庫 URL:

    twine upload --repository-url <FEED_URL> dist/*
    

使用 PAT 驗證發佈套件

使用對應項將您的套件上傳至 Azure Artifacts 摘要。

  1. 移至您的 Azure DevOps 專案,然後選取 [ 成品]。

  2. 選取您的摘要,然後選取要摘要 連線。

    A screenshot highlighting the connect to feed.

  3. 選取 [Python] 區段底下的對應項。

    A screenshot highlighting the twine package type.

  4. 在您的開發電腦上,確定已安裝對應項。

    pip install --upgrade twine
    
  5. 請遵循 [項目設定] 區段中的指示來設定您的.pypirc檔案。

    A screenshot highlighting the `.pyirc` file content.

  6. 若要避免在每次發佈套件時輸入您的個人存取令牌,您可以將認證新增至 .pypirc 檔案。 請確定您不會將個人存取令牌簽入公用存放庫。

    .pypirc具有認證的檔案範例:

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. 若要上傳套件,請在專案目錄中執行下列命令,以 <您的摘要名稱取代FEED_NAME> 。 在 Windows 上,您可能需要使用 --config-file 選項來指定pypirc檔案位置。

    twine upload --repository <FEED_NAME> dist/*
    

取用 Python 套件

您可以使用 artifacts-keyring 套件或 PAT 驗證,從摘要取用 Python 套件。

使用 artifacts-keyring 取用套件

  1. 在您的專案中,選取 [成品] ,然後選取您的摘要。

  2. 選取 [連線到摘要]

    A screenshot highlighting the connect to feed button.

  3. 選取 [Python]段底下的 pip

    A screenshot of pip selection in Connect to feed.

  4. 準備您的本機 Python 環境。

    1. 確定 pip 已安裝且最新:

      python -m pip install --upgrade pip
      
    2. 若要建立並啟用 Python 虛擬環境:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. index-url連線 的 [項目設定] 區段複製 來摘要對話方塊。

    A screenshot of the index-url in the Connect to feed dialog.

  6. 若要從摘要安裝套件,請執行下列命令,將 PACKAGE_NAME 取代<為摘要中的套件名稱,並以<您從 連線 複製到摘要對話框的索引 URL INDEX_URL>:>

    pip install <PACKAGE_NAME> --index-url <INDEX_URL>
    

當您第一次連線到 Azure DevOps 時,系統會提示您輸入認證。 在適當的欄位中輸入您的使用者名稱(任何字串)和個人存取令牌。 認證會在本機快取,並用來在下一次使用服務時自動登入您。

使用 PAT 驗證取用套件

  1. 移至您的 Azure DevOps 專案,然後選取 [ 成品]。

  2. 選取您的摘要,然後選取要摘要 連線。

    A screenshot highlighting the connect to feed button.

  3. 選取 [Python]段底下的 pip

    A screenshot highlighting the pip package type.

  4. 準備您的本機 Python 環境。

    1. 確定 pip 已安裝且最新:

      python -m pip install --upgrade pip
      
    2. 建立並啟動 Python 虛擬環境:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. 將pip.ini (Windows) 或 pip.conf (Mac/Linux) 檔案新增至虛擬環境的根目錄。 從 連線 的 [項目設定] 區段複製內容以摘要對話框,並將其新增至您的 pip.inipip.conf 檔案。

    A screenshot highlighting the pip.ini file content.

  6. 若要避免每次從摘要安裝套件時輸入個人存取令牌,您可以將認證新增至 pip.inipip.conf 檔案。 請確定您不會將個人存取令牌簽入公用存放庫。

    具有認證的pip.inipip.conf 檔案範例:

    [global]
    extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. 若要安裝套件,請執行下列命令,以 <摘要中的套件名稱取代 PACKAGE_NAME> 。

    pip install <PACKAGE_NAME>