Python

【Python】第4章第13回:自作ライブラリの配布方法

本記事では、自作のPythonライブラリをPyPIに公開して配布する方法について解説します。ライブラリを共有することで、開発スキルをさらに向上させましょう。

0. 記事の概要

この記事を読むメリット

  • 自作ライブラリの基本を理解:Pythonライブラリの作成から公開までの流れを学べます。
  • PyPI公開スキルを習得:他の開発者と共有可能なライブラリを作成できます。
  • 開発者としての成長:オープンソースへの貢献やプロジェクト管理スキルが向上します。

この記事で学べること

  • 自作ライブラリの作成と構造
  • setup.pyを用いたパッケージ作成
  • PyPIに公開する具体的な手順

1. 自作ライブラリの基本とは?

1.1 自作ライブラリのメリット

  • コードの再利用性が向上する
  • チーム開発での効率が上がる
  • オープンソースコミュニティへの貢献

1.2 必要な準備

自作ライブラリを公開する前に、以下を準備しておきましょう。

  • ライブラリのディレクトリ構造
  • setup.pyの記述
  • READMEファイルの作成

2. 自作ライブラリをPyPIに公開する手順

2.1 ディレクトリ構造の作成

# ディレクトリ構造の例
my_library/
├── my_module.py
├── setup.py
├── README.md
├── tests/
│   ├── test_my_module.py

2.2 setup.pyの記述例

# setup.py
from setuptools import setup, find_packages

setup(
    name="my_library",
    version="1.0.0",
    packages=find_packages(),
    install_requires=["numpy", "requests"],
    author="Your Name",
    description="A sample Python library",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    url="https://github.com/yourusername/my_library",
)

2.3 PyPIへの公開

# パッケージのビルド
python setup.py sdist bdist_wheel

# PyPIへのアップロード
pip install twine
twine upload dist/*
動作解説
  1. python setup.py sdist bdist_wheelでパッケージをビルドします。
  2. twine uploadでPyPIにアップロードします。
  3. 成功すると、PyPIにライブラリが公開されます。

3. 公開後の管理

3.1 ライブラリのアップデート

# setup.pyでバージョンを更新し再ビルド
python setup.py sdist bdist_wheel
twine upload dist/*

3.2 ユーザーフィードバックの収集

GitHubやPyPIで得られるフィードバックを元に、ライブラリを改善していきましょう。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 「calc_tools」という名前のライブラリを作成し、setup.pyを記述してください。
  2. PyPIに公開せず、ローカル環境でビルドとインストールを試してください。

5. 練習問題の解答と解説

問1の解答例

# calc_tools/setup.py
from setuptools import setup, find_packages

setup(
    name="calc_tools",
    version="0.1.0",
    packages=find_packages(),
    description="A simple calculator tool",
)

問2の解答例

# ローカル環境でのビルドとインストール
python setup.py sdist bdist_wheel
pip install dist/calc_tools-0.1.0-py3-none-any.whl

ローカル環境でインストールし、import calc_toolsで動作確認を行います。

6. まとめ

自作ライブラリをPyPIに公開することで、他の開発者と知識を共有できます。練習問題を通じて、ライブラリ作成の流れを確実に習得しましょう。