次の方法で共有


Azure Artifacts を使用して Python パッケージを発行してダウンロードする

Azure DevOps Services |Azure DevOps Server 2022 および Azure DevOps Server 2019

Azure Artifacts を使用すると、フィードや PyPi などのパブリック レジストリからパッケージを発行およびダウンロードできます。 このクイック スタートでは、フィードの作成、プロジェクトの構成、Azure Artifacts フィードでの Python パッケージの管理について説明します。

[前提条件]

製品 必要条件
Azure DevOps - Azure DevOps 組織
- Azure DevOps プロジェクト
- Python ダウンロードしてインストールします。

コードを取得する

  1. 独自の Python プロジェクトがない場合は、次のサンプル Python プロジェクトを使用できます。 それ以外の場合は、次のセクションに進むことができます。

    https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world
    
  2. ホイールとソース配布をビルドするには、プロジェクト ディレクトリで次のコマンドを実行します。

    pip install --upgrade build
    python -m build
    
  3. Python プロジェクトに setup.py ファイルがある場合は、次を使用してパッケージをビルドすることもできます。

    python setup.py sdist bdist_wheel
    

フィードを作成する

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

  2. Artifacts を選択し、フィードを作成します。

  3. フィードに Name を指定し、パッケージを表示できるユーザーを定義する Visibility オプションを選択し、一般的なパブリック ソースからのパッケージを含めるか確認しますnuget.orgnpmjs.comなどのソースからのパッケージを含める場合、および Scope では、フィードのスコープをプロジェクトと組織全体のどちらにするかを決定します。

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

    Azure DevOps Services で新しいフィードを作成するための選択を示すスクリーンショット。

  1. Azure DevOps サーバーにサインインし、プロジェクトに移動します。

  2. Artifacts を選択し、フィードを作成します。

  3. フィードに Name を指定し、パッケージを表示できるユーザーを定義する Visibility オプションを選択し、一般的なパブリック ソースからのパッケージを含めるか確認しますnuget.orgnpmjs.comなどのソースからのパッケージを含める場合、および Scope では、フィードのスコープをプロジェクトと組織全体のどちらにするかを決定します。

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

    Azure DevOps 2022 で新しいフィードを作成するための選択を示すスクリーンショット。

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

    Azure DevOps 2020 で新しいフィードを作成するための選択を示すスクリーンショット。

既定では、プロジェクトの ビルド サービス(projectName Build Service (orgName) など) には、新しいフィードの作成時に フィードとアップストリーム 閲覧者 (コラボレーター) ロールが割り当てられます。

フィードに接続する

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

  2. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択し、[ フィードに接続] を選択します。

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

  4. Twine で Azure Artifacts を初めて使用する場合は、[ ツールの取得 ] を選択し、指示に従って Python をダウンロードし、Twine と成果物のキーリングをインストールします。

  5. ホーム ディレクトリに pypirc ファイルを作成し、 Project のセットアップ セクションで提供されているスニペットを貼り付けます。 ファイルは次のようになります。

    [distutils]
    Index-servers =
        FEED_NAME
    
    [FEED_NAME]
    Repository = https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/pypi/upload/
    

.pypirc ファイルにパブリック PyPI インデックスの資格情報が既に含まれている場合は、プライベート パッケージを誤って PyPI に発行しないように、[pypi] セクションを削除することをお勧めします。

フィードにパッケージを発行する

  1. プロジェクト ディレクトリで次のコマンドを実行して、ソースとホイールのディストリビューションを作成します。

    python setup.py sdist bdist_wheel
    
    
  2. パッケージを発行するには、次のコマンドを使用します。 誤って PyPI に発行されないように、必ず -r FEED_NAME フラグを使用してください。

    twine upload -r <FEED_NAME> dist/*
    

フィードからパッケージをインストールする

  1. フィードからパッケージをインストールするには、プロジェクト ディレクトリで次のコマンドを実行します。

    pip install
    
  2. 特定のパッケージをインストールするには、プレースホルダーをフィードのパッケージ名に置き換えます。

    pip install <PACKAGE_NAME>