【Python】第4章第12回:setup.pyを使ったパッケージ作成
本記事では、Pythonのsetup.py
ファイルを用いてパッケージを作成し、公開する方法について解説します。setup.pyを活用することで、独自のモジュールやライブラリを簡単に共有できます。
0. 記事の概要
この記事を読むメリット
- setup.pyの基本を理解:Pythonパッケージの作成手順を学べます。
- ライブラリ公開の方法を習得:PyPIにパッケージを公開する方法がわかります。
- プロジェクト管理スキルの向上:他の開発者と効率的に共有できるツールを構築できます。
この記事で学べること
- setup.pyの基本的な構造と記述方法
- Pythonパッケージの作成と公開の手順
- パッケージ管理のベストプラクティス
1. setup.pyとは?
1.1 定義と役割
setup.py
は、Pythonパッケージの設定ファイルです。パッケージをインストール可能な形式に変換する際に使用されます。
1.2 主な機能
- パッケージのメタデータ(名前、バージョン、説明など)の定義
- 依存ライブラリの指定
- PyPIへのアップロード
2. setup.pyを使ったパッケージ作成の手順
2.1 ディレクトリ構造の作成
# パッケージ構造の例
my_package/
├── my_module.py
├── tests/
│ ├── test_my_module.py
├── setup.py
2.2 setup.pyの記述例
# setup.pyの基本構造
from setuptools import setup, find_packages
setup(
name="my_package", # パッケージ名
version="0.1", # バージョン
packages=find_packages(), # パッケージを自動検出
install_requires=[ # 依存関係
"requests",
],
author="Your Name",
author_email="your.email@example.com",
description="A sample Python package",
url="https://github.com/yourusername/my_package",
)
動作解説
setup()
関数内で、パッケージ情報を記述します。find_packages()
を使うことで、ディレクトリ構造に基づいてパッケージを自動検出します。install_requires
で依存ライブラリを指定します。
3. パッケージのビルドと公開
3.1 パッケージのビルド
# パッケージのビルド
python setup.py sdist bdist_wheel
このコマンドで、パッケージを配布可能な形式に変換します。
3.2 PyPIへの公開
# Twineを使ったPyPIへのアップロード
pip install twine
twine upload dist/*
PyPIにパッケージを公開することで、他の開発者が使用できるようになります。
4. 練習問題
以下の課題に挑戦してみましょう。
- 「hello_world」という名前のシンプルなパッケージを作成し、setup.pyを記述してください。
- パッケージをローカル環境でインストールし、動作確認を行ってください。
5. 練習問題の解答と解説
問1の解答例
# hello_world/setup.py
from setuptools import setup
setup(
name="hello_world",
version="0.1",
py_modules=["hello_world"],
install_requires=[],
author="Your Name",
description="A simple hello world package",
)
問2の解答例
# パッケージをインストール
pip install .
ローカル環境でインストールし、import hello_world
で動作確認を行います。
6. まとめ
setup.pyを使うことで、Pythonパッケージを効率的に作成・公開できます。練習問題を通じて、パッケージ管理スキルを磨きましょう。