PR
更新:2024/12/17

Pythonでライブラリを作る方法!pip install -e .の使い方について

ふゅか
ふゅか
Pythonでライブラリ作るって、何から始めたらいいか分からなくてさ。なんか簡単に教えてくれない?
はるか
はるか
pip install -e .がライブラリの開発では重要。

1. Pythonでライブラリを作る方法

Pythonでは、独自のライブラリを簡単に作成して開発・配布できます。この記事では、pip install -e .を使ってライブラリを開発モードでインストールする方法を解説します。これにより、ソースコードの編集内容がすぐ反映され、開発がスムーズになります。

1.1. ライブラリ用のディレクトリ構成を作成

まず、新しいディレクトリを作り、以下のような構成を用意しましょう。

my_library/
│
├── my_library/           ← パッケージ本体のディレクトリ
│   ├── __init__.py       ← パッケージの初期化ファイル
│   └── my_module.py      ← モジュールコード
│
├── tests/                ← テスト用ディレクトリ (任意)
│   └── test_my_module.py
│
├── README.md             ← ライブラリの概要説明
└── setup.py              ← インストール設定ファイル

1.2. setup.pyを作成

setup.pyはライブラリのインストールや配布設定を記述するファイルです。以下のコードを参考に作成します。

from setuptools import setup, find_packages

setup(
    name="my_library",                # ライブラリ名
    version="0.1.0",                  # バージョン
    packages=find_packages(),         # パッケージを自動検出
    install_requires=[],              # 依存ライブラリ
    author="Your Name",               # 作者名
    description="A simple example library",  # ライブラリの説明
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    python_requires='>=3.6',          # 対応Pythonバージョン
)
はるか
はるか
setup.pyはこんな感じ。
ふゅか
ふゅか
なるほどー。nameとかversion、あと作者名まで指定できるんだね!ふゅか、これ書けばpipでインストールできるってこと?
はるか
はるか
そう。pip install -e . で開発モードでインストール。

1.3. __init__.pyを作成

my_library/ディレクトリに__init__.pyを作成します。これにより、フォルダがPythonのパッケージとして認識されます。

例えば、my_module内の関数を使えるようにする場合:

from .my_module import *

1.4. モジュールを作成

my_library/内にmy_module.pyを作り、簡単な関数を書いてみます。

def my_function():
    print("あー。おなかすいた!")

1.5. 開発モードでインストール

pip install -e .コマンドを使うことで、ライブラリを開発モードでインストールできます。

pip install -e .

1.5.1. 開発モードのメリット

  • ソースコードを編集すると即座に反映されます。
  • いちいち再インストールする手間がかかりません。

この時のファイルの構造は次のようになっています。

ふゅか
ふゅか
開発モード? なんか聞き慣れない言葉だなぁ……。
はるか
はるか
編集した内容がすぐ反映される。再インストール不要。

2. ライブラリを使う

インストールが完了したら、別のファイルで作成したライブラリをインポートして利用できます。

from my_library import my_function

my_function()  # 出力: あー。おなかすいた!

プログラムを実行すると、次のようになります。

2.1. ライブラリをインストール後に編集すると

pip install -e .コマンドでは、

  • ソースコードを編集すると即座に反映されます。

という特徴があります。ここで、my_module.pyを次のように編集します。

def my_function():
    print(1+2+3+4+5)

これを実行すると