🚚
【python】自作ライブラリをpipに登録する時の覚え書き
概要
- PyPIのアカウント作成
- APIキーの取得
- 設定ファイルの作成
- pyproject.toml の編集
- パッケージのビルド
- PyPITestへの登録
- PyPIへの登録
この記事に書かないこと
- ライブラリの作り方
- 公開した自作OSSを有名にする方法(こちらの記事を参照)
ディレクトリ構成
my-library/
├── LICENSE
├── pyproject.toml
├── README.md
├── my_library/
│ ├── __init__.py
│ └── Main.py
├── example/
└── tests/
PyPIのアカウント作成
本番用
テスト用
APIキーの取得
アカウント設定から。本番用とテスト用でそれぞれ取得する。
- 二要素認証を設定する
- APIトークンを追加する
- 発行された
pypi-
ではじまるAPIトークンを覚えておく
設定ファイルの作成
ホームディレクトリに下記のファイルを作成する。
Windowsの場合は C:\Users\<ユーザー名>\.pypirc
password のところに上で取得したAPIトークンを入力する。
.pypirc
[distutils]
index-servers =
pypi
pypitest
[pypi]
repository=https://upload.pypi.org/legacy/
username=__token__
password=pypi-xxxxxx
[pypitest]
repository=https://test.pypi.org/legacy/
username=__token__
password=pypi-xxxxxx
pyproject.toml の編集
pythonのドキュメントの記載例を真似して書く。
pyproject.toml
[project]
name = "my_library"
version = "0.1.0"
description = "That's one giant leap for me, one small step for mankind."
readme = "README.md"
requires-python = ">=3.8"
license = {file = "LICENSE"}
authors = [
{name = "Brett Cannon", email = "brett@python.org"}
]
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python :: 3",
"Topic :: Multimedia :: Graphics",
"Topic :: Scientific/Engineering :: Visualization",
]
dependencies = [
"matplotlib",
"seaborn",
]
[project.urls]
Repository = "https://github.com/me/my_library.git"
パッケージのビルド
build を使う。
python -m pip install --upgrade build
プロジェクトの階層(pyproject.tomlがあるディレクトリ)で下記を実行する。
python -m build
成功すれば、distディレクトリにファイルが2つ生成される。
PyPITestへの登録
twine を使う。
python -m pip install --upgrade twine
下記を実行する。
python -m twine upload --repository pypitest dist/*
成功すれば、https://test.pypi.org/project/... に自作パッケージが表示される。
PyPIへの登録
下記を実行する。
python -m twine upload dist/*
成功すれば、https://pypi.org/project/... に自作パッケージが表示される。
参考にした記事
Discussion