Pythonパッケージ #
Pythonにはpipというパッケージ管理ツールがあります。ここではpipでインストールできるPythonパッケージの作り方を説明します。
ツールのインストール #
パッケージをビルドするのに使用するツールをpipでインストールします。インストールするのはsetuptoolsとbuildです。
pip install --upgrade setuptools build
ファイル構成 #
ここではmypkgというパッケージを例として作ります。
ファイル構成は下のようにしておきます。
mypkgの下にPythonのプログラムを配置しています。Python以外のファイルをパッケージに入れ込む例として、ここではJavaScriptファイルを置いています。
pyproject.tomlがパッケージを作るための設定ファイルです。
mypkg
├── mypkg
│ ├── __init__.py
│ ├── js
│ │ └── additional.js
│ └── main.py
└── pyproject.toml
pyproject.toml #
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "mypkg"
version = "0.0.1"
[tool.setuptools.package-data]
"*" = ["*.js"]
[tool.setuptools.package-data]の設定がないと、jsファイルがパッケージに含まれません。
ビルド #
buildを実行します。
python -m build
distディレクトリにパッケージが作成されています。
dist
├── mypkg-0.0.1-py3-none-any.whl
└── mypkg-0.0.1.tar.gz
作成された.whlファイルはpipコマンドでインストールできます。
pip install dist/mypkg-0.0.1-py3-none-any.whl
データファイルへのアクセス #
パッケージに加えたファイルにはimportlib.resources.filesを使いアクセスできます。
これはpathlibのPathの一部機能が使えるものになっています。機能が足りない場合は、as_fileを使うとPathとして得られます。
from importlib.resources import files, as_file
data_text = files("mypkg.js").joinpath("additional.js")
print(data_text.read_text())
with as_file(data_text) as f:
print(f.read_text())