次の方法で共有


Python パッケージ インデックス (PyPI) のパッケージを使用する

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

開発者は、Azure Artifacts を使用して、Azure Artifacts フィードと外部レジストリ (PyPI.org など) の両方からパッケージを発行および使用できます。アップストリーム ソースを有効にすると、1 つのフィードを使用して、独自のパッケージとパブリック レジストリから使用されるパッケージの両方を管理して、パッケージ管理を効率化できます。 有効にすると、Azure Artifacts は、コラボレーター以上によってインストールされたパッケージのコピーをアップストリーム ソースから自動的に保存します。 この記事では、プロジェクトを設定し、コマンド ラインを使用して PyPI から Python パッケージを効率的に使用する方法について説明します。

この記事では、次の方法について学習します。

  • フィードのアップストリーム ソースを有効にする
  • アップストリーム ソースとして PyPI を追加する
  • プロジェクトをセットアップする
  • Python パッケージ インデックスからパッケージをインストールする

前提条件

  • Azure DevOps organizationとプロジェクト。 まだ作成していない場合は、organizationまたはプロジェクトを作成します。

  • Azure Artifacts フィード。

  • Pythonをダウンロードします。

新しいフィードを作成するときにアップストリーム ソースを有効にする

フィードをまだ作成していない場合は、次の手順に従って新しいフィードを作成します。 アップストリーム ソースを有効にするには、必ず upstream ソース のチェック ボックスをオンにします。 既にフィードがある場合は、 次の手順に進み PyPI をアップストリーム ソースとして追加します。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. Artifacts を選択し、[フィードの作成] を選択して新しいフィードを作成します。

  3. フィードのわかりやすい Name を入力し、その 非表示 を定義します (フィード内でパッケージを表示できるユーザーを示します)。 フィードの Scope を指定し、 Upstream ソース チェックボックスをオンにして、パブリック レジストリのパッケージを含めます。

  4. 終わったら [作成] を選択します。

    必要なフィードを作成する方法を示すスクリーンショット。

PyPI を新しいアップストリーム ソースとして追加する

フィードの作成時に [アップストリーム ソース] チェックボックスをオンにした場合、PyPI はアップストリーム ソースとして自動的に含まれているはずです。 そうでない場合は、次の手順に従って手動で追加できます。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. Artifactsを選択し、歯車アイコン歯車アイコンを選択してFeed 設定に移動します。

  3. Upstream ソースを選択し、アップストリームの追加を選択して、新しいアップストリーム ソースを追加します。

  4. [ソース パブリック] を選択しドロップダウン メニューから [ PyPI (https://pypi.org/) を選択します。

  5. 完了したら [追加 ] を選択し、右上隅にある [ 保存 を選択して変更を保存します。

    PyPI を新しいアップストリーム ソースとして追加する方法を示すスクリーンショット。

フィードで認証する

  1. Python がダウンロードされていることを確認し、次のコマンドを実行して Python パッケージ マネージャーをアップグレードします。

    python -m pip install --upgrade pip
    
  2. 次のコマンドを実行して、Azure Artifacts キーリングをインストールします。

    pip install keyring artifacts-keyring
    
  3. Azure DevOps で認証するために、Packaging>Read スコープを使用してPersonal アクセス トークンを作成します。 Azure DevOps に初めて接続するときは、プロンプトが表示されたら資格情報を入力する必要があります。 指定されたフィールドにユーザー名 (任意の文字列) と個人用アクセス トークンを指定します。 これらの資格情報はローカルにキャッシュされ、次回サービスを使用するときにサインインするために自動的に使用されます。

  4. プロジェクト フォルダーに移動し、次のコマンドを実行して新しい仮想環境を作成します。

    python -m venv <VIRTUAL_ENVIRONMENT_NAME>
    
  5. 仮想環境に新しい pip.ini ファイル (Windows) または pip.conf ファイル (Mac/Linux) を作成し、次のスニペットをファイルに貼り付けます。 プレースホルダーを適切な情報に置き換え、個人用アクセス トークンが含まれるパブリック リポジトリにこのファイルをコミットしないように注意してください。

    • プロジェクト スコープフィード:

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      
    • 組織スコープのフィード:

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      

PyPI からパッケージをインストールする

フィードで認証するようにプロジェクトを構成したので、PyPI アップストリームからのパッケージのインストールを開始できます。 この例では、 Flaskをインストールします。

  1. コマンド プロンプト ウィンドウで、プロジェクト フォルダーに移動し、次のコマンドを実行して仮想環境をアクティブ化します。 プレースホルダーを、前に作成した仮想環境の名前に置き換えます。

    <YOUR_VIRTUAL_ENVIRONMENT_NAME>/Scripts/Activate.ps1
    
  2. 次のコマンドを実行して、仮想環境にインストールされているパッケージを確認します。

    pip list
    
  3. 次のコマンドを実行して、 Flaskをインストールします。

    pip install -U Flask
    
  4. パッケージがインストールされると、Azure Artifacts によってこのパッケージのコピーがフィードに保存されます。 次のスクリーンショットに示すように、フィードでパッケージを使用できる必要があります。

    PyPI アップストリームからインストールされたパッケージを示すスクリーンショット。