Skip to content

Latest commit

 

History

History
190 lines (132 loc) · 4.9 KB

File metadata and controls

190 lines (132 loc) · 4.9 KB

PyPIへの公開手順

事前準備

1. PyPIアカウントの作成

  1. PyPIにアクセスして、アカウントを作成
  2. TestPyPIにも同様にアカウントを作成(テスト用)

2. API トークンの設定

セキュリティのため、API トークンを使用することを推奨します。

  1. PyPIにログイン後、アカウント設定から「API tokens」を選択
  2. 「Add API token」をクリック
  3. トークン名を入力し、スコープを選択(最初は「Entire account」でOK)
  4. トークンをコピーして安全に保管

3. .pypircファイルの設定(オプション)

ホームディレクトリに.pypircファイルを作成すると、認証情報を保存できます:

[distutils]
index-servers =
    pypi
    testpypi

[pypi]
username = __token__
password = pypi-AgEIcHlwaS5vcmcCJDU1NTU1NTU1LTU1NTUtNTU1NS01NTU1LTU1NTU1NTU1NTU1NQ...

[testpypi]
username = __token__
password = pypi-AgENdGVzdC5weXBpLm9yZwIkNTU1NTU1NTUtNTU1NS01NTU1LTU1NTUtNTU1NTU1NTU1NTU1...

注意: .pypircファイルには機密情報が含まれるため、パーミッションを600に設定してください:

chmod 600 ~/.pypirc

公開手順

1. 必要なツールのインストール

# ビルドツール
pip install build

# アップロードツール
pip install twine

2. パッケージのビルド

# プロジェクトのルートディレクトリで実行
python -m build

これによりdist/ディレクトリに以下のファイルが作成されます:

  • pycefrizer-3.0.0.tar.gz (ソース配布物)
  • pycefrizer-3.0.0-py3-none-any.whl (Wheel配布物)

3. ビルドしたパッケージの確認

# パッケージの内容を確認
tar -tzf dist/pycefrizer-3.0.0.tar.gz

# Wheelの内容を確認
unzip -l dist/pycefrizer-3.0.0-py3-none-any.whl

# パッケージの検証
twine check dist/*

4. TestPyPIへのアップロード(推奨)

本番環境にアップロードする前に、TestPyPIでテストすることを強く推奨します。

# TestPyPIにアップロード
twine upload --repository testpypi dist/*

プロンプトが表示されたら:

  • Username: __token__
  • Password: TestPyPI用のAPIトークン

5. TestPyPIからインストールしてテスト

# 新しい仮想環境を作成
python -m venv test-env
source test-env/bin/activate  # Windowsの場合: test-env\Scripts\activate

# TestPyPIからインストール
# 注: パッケージ名は実際にTestPyPIに公開した後に利用可能になります
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pycefrizer

# 動作確認
python -c "import pycefrizer; print(pycefrizer.__version__)"
pycefrizer --version

6. 本番のPyPIへのアップロード

テストが成功したら、本番環境にアップロードします:

twine upload dist/*

プロンプトが表示されたら:

  • Username: __token__
  • Password: PyPI用のAPIトークン

7. 公開の確認

# PyPIからインストール
# 注: パッケージ名は実際にPyPIに公開した後に利用可能になります
pip install pycefrizer

# パッケージページを確認
# https://pypi.org/project/pycefrizer/

バージョンアップ時の手順

1. バージョン番号の更新

以下のファイルでバージョン番号を更新:

  • pyproject.toml
  • setup.py
  • pycefrizer/__init__.py

2. 変更履歴の更新

CHANGELOG.mdを作成/更新して変更内容を記録

3. 古いビルドファイルの削除

rm -rf dist/ build/ *.egg-info/

4. 新しいバージョンをビルド・アップロード

python -m build
twine upload dist/*

トラブルシューティング

よくある問題

  1. パッケージ名が既に使用されている

    • パッケージ名を変更する必要があります
    • pyproject.tomlsetup.pynameフィールドを更新
  2. 認証エラー

    • APIトークンが正しくコピーされているか確認
    • __token__をユーザー名として使用しているか確認
  3. ファイルが含まれない

    • MANIFEST.inを確認
    • pyproject.tomlpackage-data設定を確認

セキュリティのベストプラクティス

  1. APIトークンは環境変数で管理

    export TWINE_USERNAME=__token__
    export TWINE_PASSWORD=pypi-AgEIcHlwaS5vcmcCJDU1NTU1NTU1LTU1NTUtNTU1NS01NTU1LTU1NTU1NTU1NTU1NQ...
    twine upload dist/*
  2. プロジェクトごとにスコープを限定したAPIトークンを使用

  3. 2要素認証を有効化

参考リンク