1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PyPIでPythonライブラリを公開する方法まとめ

Last updated at Posted at 2022-07-22

PythonのライブラリはPyPIに集約されています。そのため、便利なライブラリを作ったら、PyPIで公開するとみんなが喜んでくれるはずです。

パッケージの準備

PyPIでパッケージを公開するには、パッケージのファイル構成を工夫する必要があります。最低限以下のようなファイルを作ります。

.
├── LICENSE
├── README.md
├── パッケージ名
│   ├── __init__.py
│   └── モジュール.py
└── setup.py

パッケージ名/init.py の内容

Pythonでどのメソッドを公開するのか、また、バージョンなど記述します。

__init__.py
# 記述例
from .モジュール import get, set, hoge as keys
__version__ = "0.1.0"

setup.py の内容

以下がsetup.pyの内容。普通のPythonファイルのため、バージョン情報などは、一カ所にまとめておくと便利。

setup.py
from setuptools import setup

# バージョン情報を参照するため
from パッケージ名 import __version__

setup(name="ライブラリ名",
      author="作者名",
      author_email="メールアドレス",
      maintainer="作者名",
      maintainer_email="メールアドレス",
      description="簡単な解説",
      long_description="長い解説",
      long_description_content_type="text/markdown",
      license="MIT" # ラインセスを指定
      url="URL",
      version=__version__, # バージョン情報
      python_requires=">=3.6.0", # Pythonバージョン
      install_requires=[], # 依存パッケージ ["ライブラリ>=バージョン"]のように書く
      extras_require={},
      packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]),
      classifiers=["Programming Language :: Python :: 3"] # 分類情報
)

パッケージをビルドする

ビルドに必要なモジュールをインストールしておきましょう。

python3 -m pip install twine wheel

そしてビルドしましょう。

python3 setup.py sdist
python3 setup.py bdist_wheel

PyPIに登録して設定ファイルを保存

PyPIにサインアップして、アカウント設定ページから「API token」を作成しましょう。

そして、~/.pypirc というファイルに表示された以下のようなデータを保存します。(ちなみに、以下のキーは無効な適当なキーです。)

[pypi]
  username = __token__
  password = pypi-AgEIcHlwaS5vcmcCJ3lYW5VhMD6ATRhMzZhYmVhZjJlZQACJXsicGVybWlzc2lvbccMOiAidXNlciIsICxxxxxxxxxxxuIjogMX0AAAYgwKuqpKoqQjCobp41bcp93hul9Zc0HT7-ilztjnbVaaM

公開しよう

PyPIにいきなり本公開する前に、テストサイトに公開して、どんな風に公開されるのか確認できます。なお、テストサイトと本サイトは独立していますので、テストサイトでも、ユーザー登録が必要です。同じように、API tokenを作成して、~/.pypircに追加しましょう。

以下のコマンドを実行すると、テストサイトに公開されます。

twine upload --repository testpypi dist/*

公開して問題なさそうなら、本番に公開しましょう。

twine upload --repository pypi dist/*

バージョンアップ

上記の手順でビルドすると、とと<パッケージ名.egg-info>というディレクトリが自動で作成されます。そこで、最初にクリアしておくと分かりやすいです。

rm -f -r dist
rm -f -r build
rm -f -r パッケージ名.egg-info

そして、バージョンを変更してから、改めて、上記のパッケージビルドを実行しましょう。

サンプルパッケージ

一度、自分でパッケージを公開してみたいと思ったので、pykvs_liteというライブラリを作ってみました。
最小構造で作っていますので、参考にしてみてください。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?