はじめに
poetry を使用して、PyPIにパッケージを公開するための設定手順です。
PyPIそのものと、PyPIのアカウント登録については、@shinichi-takii さんの記事をご参照ください。
準備
poetryとkeyringをインストール
もしまだインストールされていなければ、poetryとkeyringをインストールします。
keyringは、PyPIのアカウント情報を保存するために使用されます(なくても大丈夫ですが、インストールする方がおすすめです。macOSの場合、キーチェーンを使ってくれます)。
poetryのインストールについては、@canonrock16 さんの記事をご参照ください。
keyringのインストールについては、@hidelafoglia さんの記事をご参照ください。
テストレポジトリの登録
testpypiという名前で、Test PyPIのURLを登録します。
poetry config repositories.testpypi https://test.pypi.org/legacy/
TestではないほうのPyPIは、poetry自体に組み込まれているので何もしなくてよいです。
API Tokenの発行
PyPI および Test PyPI へアクセスし、API Tokenを発行します。
Add API tokenをクリックします。
任意のToken nameを入力し、Scopeを選択します。
Add tokenをクリックします。
API Tokenが発行されるのでコピーします。
API Tokenの登録
PyPIのAPI Tokenを登録します。
poetry config pypi-token.pypi "PyPIのAPI Token"
Test PyPIのAPI Tokenを登録します。
poetry config pypi-token.testpypi "Test PyPIのAPI Token"
パッケージの作成
これからパッケージを作成する場合は、poetry new パス名
というコマンドを実行すると、パスで指定したディレクトリの下に、以下のようなファイルが出来上がります。
├── README.rst
├── パス名
│ └── __init__.py
├── pyproject.toml
└── tests
├── __init__.py
└── test_パス名.py
pyproject.toml
ファイルを開き、以下の項目を[tool.poetry]
セクションに追加します(追加しなくてもよいですが、追加するほうがおすすめです)。
readmeのファイル名は、実際に合わせてください。
[tool.poetry]
description = "短い説明文"
license = "ライセンス名"
homepage = "ホームページURL"
repository = "ソースレポジトリURL"
readme = "README.md"
setup.py
ファイルは、ビルド時に自動的に生成されるので、自前で用意しなくても大丈夫です。
パッケージをビルド
以下のコマンドを実行すると、distディレクトリ以下にソースtarボールとwhlファイルができます。
poetry build
パッケージをアップロード
Test PyPIへアップロードするには、登録したレポジトリ名を指定します。
poetry publish -r testpypi
TestではないほうのPyPIへアップロードする場合は、何も指定する必要はありません。
poetry publish
おわりに
poetryを使うことで、Python初心者の自分でも簡単にパッケージを作成して公開することができました。