コマンド ラインを使用して 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 フィードを作成。
フィードがない場合は、次の手順に従ってフィードを作成します。
Azure DevOps 組織にサインインし、プロジェクトに移動します。
[ Artifacts]\(成果物\) を選択し、フィードを作成します。
フィードに次の情報を入力します。
- フィードのわかりやすい 名前 を入力します。
- その可視性を定義します (フィード内でパッケージを表示できるユーザーを示します)。
- pypi.org などのパブリック ソースのパッケージを使用するかどうかを選択します。
- フィードの スコープ を指定します。
[作成] を選択します
Azure DevOps コレクションに移動し、プロジェクトを選択します。
[ Artifacts]\(成果物\) を選択し、フィードを作成します。
フィードに次の情報を入力します。
- フィードのわかりやすい 名前 を入力します。
- その可視性を定義します (フィード内でパッケージを表示できるユーザーを示します)。
- pypi.org などのパブリック ソースのパッケージを使用するかどうかを選択します。
- フィードの スコープ を指定します。
[作成] を選択します
Azure DevOps コレクションに移動し、プロジェクトを選択します。
[成果物] を選択し、[フィードの作成] を選択して新しいフィードを作成します。
フィードに次の情報を入力します。
- フィードのわかりやすい 名前 を入力します。
- その可視性を定義します (フィード内でパッケージを表示できるユーザーを示します)。
- pypi.org などのパブリック ソースのパッケージを使用するかどうかを選択します。
- フィードの スコープ を指定します。
[作成] を選択します
Azure DevOps コレクションに移動し、プロジェクトを選択します。
[成果物] を選択し、[フィードの作成] を選択して新しいフィードを作成します。
フィードに次の情報を入力します。
- フィードのわかりやすい 名前 を入力します。
- その可視性を定義します (フィード内でパッケージを表示できるユーザーを示します)。
- pypi.org などのパブリック ソースのパッケージを使用するかどうかを選択します。
[作成] を選択します
ローカル Python パッケージを作成する
フィードに発行するには Python パッケージが必要です。 発行するパッケージがない場合は、GitHub からサンプル Python パッケージを複製できます。
サンプル Python パッケージを複製する
GitHub のサンプル Python パッケージを使用するには、次の手順に従います。
次の GitHub リポジトリに移動します。
https://github.com/microsoft/python-package-template
GitHub アカウントにリポジトリをフォークする。
フォークしたリポジトリに移動し、[コード] を選択します。
フォークしたリポジトリの URL をコピーします。
ローカル コンピューター上の CLI から、フォークされたリポジトリからコピーした URL を使用して、リポジトリをローカル コンピューターに複製します。
git clone <REPOSITORY_URL>
複製したリポジトリにディレクトリを変更します。
cd python-package-template
パッケージをビルドする
ホイールとソース配布をビルドするには、プロジェクト ディレクトリで次のコマンドを実行します。
pip install --upgrade build
python -m build
Python プロジェクトにファイルがある場合は setup.py
、次のコマンドを使用してパッケージをビルドできます。
python setup.py sdist bdist_wheel
フィードに接続する
フィードに接続して Python パッケージを発行または使用するには、主に次の 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 を使用してパッケージを発行する
[接続] を選択 してフィードからフィード します。
twine を選択し、[Project setup]\(プロジェクトのセットアップ\) セクションからリポジトリの URL をコピーします。
フィードにパッケージを発行するには、F Enterprise Edition D_URL> を [フィードへの接続] ダイアログからコピーしたリポジトリ URL に置き換えて<、次のコマンドを実行します。
twine upload --repository-url <FEED_URL> dist/*
PAT 認証を使用してパッケージを発行する
Twine を使用して、パッケージを Azure Artifacts フィードにアップロードします。
Azure DevOps プロジェクトに移動し、[成果物] を選択します。
フィードを選択し、[フィードに接続] を選択 します。
[Python] セクションで [twine] を選択します。
開発用コンピューターに、twine がインストールされていることを確認します。
pip install --upgrade twine
「プロジェクトのセットアップ」セクションの指示に従って、ファイルを設定します
.pypirc
。パッケージを発行するたびに個人用アクセス トークンを入力する必要がないように、資格情報をファイルに
.pypirc
追加できます。 個人用アクセス トークンをパブリック リポジトリにチェックしていないことを確認します。資格情報を持
.pypirc
つファイルの例:[distutils] Index-servers = <FEED_NAME> [<FEED_NAME>] Repository = <FEED_URL> username = <FEED_NAME> password = <YOUR_PERSONAL_ACCESS_TOKEN>
パッケージをアップロードするには、F Enterprise Edition D_NAME> をフィード名に置き換えて<、プロジェクト ディレクトリで次のコマンドを実行します。 Windows では、オプションを使用してファイルの場所
--config-file
をpypirc
指定することが必要な場合があります。twine upload --repository <FEED_NAME> dist/*
Python パッケージを使用する
成果物キーリング パッケージまたは PAT 認証を使用して、フィードから Python パッケージを使用できます。
artifacts-keyring を使用してパッケージを使用する
プロジェクトで [成果物] を選択し、フィードを選択します。
[Connect to feed] を選択します。
[Python] セクションで [pip] を選択します。
ローカル Python 環境を準備します。
pip がインストールされ、最新であることを確認します。
python -m pip install --upgrade pip
Python 仮想環境を作成してアクティブ化するには:
python -m venv myenv myenv/Scripts/activate
[フィードに接続]
index-url
ダイアログの [プロジェクトのセットアップ] セクションからコピーします。フィードからパッケージをインストールするには、次のコマンドを実行して、PACKAGE_NAMEをフィード<のパッケージ名に置き換え、INDEX_URL>フィードへの接続ダイアログからコピーしたインデックス URL に置き換えます<。>
pip install <PACKAGE_NAME> --index-url <INDEX_URL>
初めて Azure DevOps に接続すると、資格情報の入力を求められます。 適切なフィールドに、ユーザー名 (任意の文字列) と個人用アクセス トークンを入力します。 資格情報はローカルにキャッシュされ、次回サービスを使用するときに自動的にサインインするために使用されます。
PAT 認証でパッケージを使用する
Azure DevOps プロジェクトに移動し、[成果物] を選択します。
フィードを選択し、[フィードに接続] を選択 します。
[Python] セクションで [pip] を選択します。
ローカル Python 環境を準備します。
pip がインストールされ、最新であることを確認します。
python -m pip install --upgrade pip
Python 仮想環境を作成してアクティブ化します。
python -m venv myenv myenv/Scripts/activate
pip.ini (Windows) または pip.conf (Mac/Linux) ファイルを仮想環境のルート ディレクトリに追加します。 [フィードに接続] ダイアログの [プロジェクトのセットアップ] セクションからコンテンツをコピーし、pip.iniまたは pip.conf ファイルに追加します。
フィードからパッケージをインストールするたびに個人用アクセス トークンを入力する必要がないように、資格情報を pip.ini または pip.conf ファイルに追加できます。 個人用アクセス トークンをパブリック リポジトリにチェックしていないことを確認します。
資格情報を持つ pip.ini または pip.conf ファイルの例:
[global] index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
パッケージをインストールするには、PACKAGE_NAMEをフィードのパッケージ名に置き換えて<>、次のコマンドを実行します。
pip install <PACKAGE_NAME>