7  TestPyPIの設定

Author

Ryo Nakagami

Published

2025-11-22

Modified

2025-11-22

NoteTL;DR
  • PyPI : 本番の公式リポジトリ
  • TestPyPI : 本番に影響しないテスト用リポジトリ

TestPyPIとは?

TestPyPI とは,PyPI へ正式公開する前のpublicなsandbox環境です.主な用途としては

  • パッケージのビルド手順が正しく動くか確認
  • pyproject.toml のメタデータが正しく反映されるかをチェック
  • pip install で正常にインストールできるかの事前テスト
Warning
  • TestPyPIはPyPIとは別のデータベースで運用されているので,TestPyPI専用のユーザアカウントを作成が必要
    • TestPyPI 用のデータベースは定期的に刈り込まれるので,ユーザアカウントが削除されることがあり
  • TestPyPIはprivate repositoryとしての運用は出来ません
  • アップロードしたパッケージは全世界から閲覧・インストール可能
  • PrivateなPyPIを使いたい場合は,Dockerを用いて pypiserver/pypiserver を構築するなどの対応が必要

TestPyPIへのpublish

TestPyPIにパッケージを公開(publish)する基本的な手順は,リポジトリURLをTestPyPIに変える以外は以下のようにPyPIとほぼ同じです.

  1. パッケージを準備
  2. パッケージをビルド
  3. TestPyPI にアップロード
  4. TestPyPI からインストールして動作確認

TestPyPIにアップロードするためにはユーザー登録とAPI Tokenの発行が必要となります.

TestPyPI Token設定

TestPyPI API Token 発行手順

  1. Test PyPI へログイン
  1. メニューから Account settings へ移動
  1. ページ下部の API tokens セクションへ移動
  1. Add API token をクリックし,トークン設定を入力 & トークンの発行
  • Token name」と「Scope」を使い方に合わせて選択する

Test PyPI API token発行
NoteTest PyPI API Tokenの種類
種類 説明 メリット デメリット
Entire account 全プロジェクトで利用可能なトークン - どのプロジェクトにも upload 可能
- 開発初期の試験に便利
漏洩した時の影響範囲が大きい
Specific project 指定した1つのプロジェクトのみで使用可能 - セキュリティ的に安全
- 本番運用に近い形で試験できる
プロジェクトごとにトークン発行が必要

パッケージをTestPyPIへPublish

ここでは UV, Poetry それぞれを用いたTest PyPI へのpublishを解説します.前提として,手元にpublish対象のプロジェクトは存在するとします. uv versionに対応したプロジェクト例はこちらになります.

共通の流れ

Python Packageの publish の流れは,基本的にはツールに依らず以下の 3 ステップです:

  1. プロジェクトをビルドする(sdist / wheel の生成)
  2. TestPyPI 用のトークンをセット
  3. パッケージを TestPyPI へ upload

uv version

uv version 0.9.11 での解説をします.

% uv --version
uv 0.9.11

Poetry version

TestPyPIからインストール

poetry source add testpypi https://test.pypi.org/simple/ --priority=supplemental 

References