コマンド ラインを使用して 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. [ Artifacts]\(成果物\) を選択し、フィードを作成します。

    A screenshot showing how to create a feed.

  3. フィードに次の情報を入力します。

    1. フィードのわかりやすい 名前 を入力します。
    2. その可視性定義します (フィード内でパッケージを表示できるユーザーを示します)。
    3. pypi.org などのパブリック ソースのパッケージを使用するかどうかを選択します。
    4. フィードの スコープ を指定します。
  4. [作成] を選択します

  1. Azure DevOps コレクションに移動し、プロジェクトを選択します。

  2. [ Artifacts]\(成果物\) を選択し、フィードを作成します。

    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 パッケージを発行または使用するには、主に次の 2 つの方法があります。

  1. 自動的に認証を設定するアーティファクト キーリング パッケージを使用します。
  2. PAT を使用して資格情報を手動で設定します。

Note

artifacts-keyring は、新しいバージョンの Ubuntu ではサポートされていません。

Note

組織でファイアウォールまたはプロキシ サーバーを使用している場合は、Azure Artifacts のドメイン URL と IP アドレスを必ず許可してください。

認証用にアーティファクト キーリングを設定する

成果物キーリング パッケージは Python キーリング パッケージと連携して、フィードとの間で Python パッケージを発行および使用するための認証を設定できます。 pip と twine はどちらも Python キーリング パッケージを使用して資格情報を検索します。

重要

artifacts-keyring を使用するには、pip 19.2 と twine 1.13.0 以上が必要です。 詳細については、「使用要件」を参照してください

artifacts-keyring を使用する場合は、使用する前にパッケージをインストールする必要があります。

管理者特権のコマンド プロンプト ウィンドウで、次のコマンドを実行して artifacts-keyring パッケージをインストールします。

pip install artifacts-keyring

Python パッケージの発行

成果物キーリング パッケージまたは PAT 認証を使用して、Python パッケージをフィードに発行できます。

artifacts-keyring を使用してパッケージを発行する

  1. [接続] を選択 してフィードからフィード します。

    A screenshot highlighting the connect to feed.

  2. twine を選択し、[Project setup]\(プロジェクトのセットアップ\) セクションからリポジトリの URL をコピーします。

    A screenshot of instructions to connect to feed with twine.

  3. フィードにパッケージを発行するには、F Enterprise Edition D_URL> を [フィードへの接続] ダイアログからコピーしたリポジトリ URL に置き換えて<、次のコマンドを実行します。

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

PAT 認証を使用してパッケージを発行する

Twine を使用して、パッケージを Azure Artifacts フィードにアップロードします。

  1. Azure DevOps プロジェクトに移動し、[成果物] を選択します

  2. フィードを選択し、[フィードに接続] を選択 します

    A screenshot highlighting the connect to feed.

  3. [Python] セクションで [twine] を選択します。

    A screenshot highlighting the twine package type.

  4. 開発用コンピューターに、twine がインストールされていることを確認します。

    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. パッケージをアップロードするには、F Enterprise Edition D_NAME> をフィード名に置き換えて<、プロジェクト ディレクトリで次のコマンドを実行します。 Windows では、オプションを使用してファイルの場所--config-filepypirc指定することが必要な場合があります。

    twine upload --repository <FEED_NAME> dist/*
    

Python パッケージを使用する

成果物キーリング パッケージまたは PAT 認証を使用して、フィードから Python パッケージを使用できます。

artifacts-keyring を使用してパッケージを使用する

  1. プロジェクトで [成果物] を選択し、フィードを選択します。

  2. [Connect to feed] を選択します。

    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をフィード<のパッケージ名に置き換え、INDEX_URL>フィードへの接続ダイアログからコピーしたインデックス 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.iniまたは pip.conf ファイルに追加します。

    A screenshot highlighting the pip.ini file content.

  6. フィードからパッケージをインストールするたびに個人用アクセス トークンを入力する必要がないように、資格情報を pip.ini または pip.conf ファイルに追加できます。 個人用アクセス トークンをパブリック リポジトリにチェックしていないことを確認します。

    資格情報を持つ pip.ini または pip.conf ファイルの例:

    [global]
    extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. パッケージをインストールするには、PACKAGE_NAMEをフィードのパッケージ名に置き換えて<>、次のコマンドを実行します。

    pip install <PACKAGE_NAME>