Python パッケージ作成に関する情報まとめ
Python パッケージ作成、PyPI(パイ・ピーアイ) への登録などに役立つ情報を、まとめる。
setup.py
だけ使用するパターン、setup.cfg
も使用するパターン、__init__.py
に多くの役割を持たせるパターン/ほとんど役割を持たせないパターン、などパッケージ作成に関してさまざま選択肢があるので、いろいろな例を見ておくと良い。
関連公式ドキュメント
- Python モジュールの配布 — Python 3.9.1rc1 ドキュメント
- 2. setup スクリプトを書く — Python 3.9.1rc1 ドキュメント
- 6. モジュール — Python 3.9.1rc1 ドキュメント
参考情報
- Python Packaging User Guide — Python Packaging User Guide ドキュメント
- 【Techの道も一歩から】第21回「setup.pyを書いてpipでインストール可能にしよう」 - Sansan Builders Blog
- PythonのCLIパッケージの作り方 - karakaram-blog
- Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
- setuptools: Pythonパッケージ作成 - Heavy Watal
- Pythonのパッケージングのベストプラクティスについて考える2018 - 朝日ネット 技術者ブログ
- Pythonでグローバルコマンドを含んだパッケージを作る - Qiita
- 自作のPythonパッケージをPyPIに登録してpip install可能にする - Qiita
参考になる Python パッケージ(OSS)
- GitHub - VaasuDevanS/cowsay-python: The famous cowsay 🐮 for GNU/Linux is now available for python 🐍
- 非常にシンプルなパッケージ(CLI の参考にもなる)
- GitHub - pypa/twine: Utilities for interacting with PyPI
config.cfg
の書き方が参考になる(CLI の参考にもなる)
- GitHub - jazzband/django-redis: Full featured redis cache backend for Django.
- GitHub - yaml/pyyaml: Canonical source repository for PyYAML
パッケージのインストールテスト
パッケージを作ったらインストールして試してみる
開発用
開発中のパッケージは、こちらの方法でインストールしてテストする。
$ python setup.py develop # もしくは $ pip install -e .
配布用
# 配布用パッケージの作成 # これで dist/ 以下にパッケージ(tar.gz)ができる $ python setup.py sdist # 配布用パッケージのインストール $ pip install dist/*
パッケージ情報の確認
$ pip show <パッケージ名>
アンインストール
$ pip uninstall <パッケージ名>
PyPI への登録
登録するためのツール twine
が入っていないならインストールする。
$ pip install twine
登録。
$ twine upload --repository pypi dist/*