PYTHON MEBY

Pythonでpyproject.tomlを使う(Python 3.11以降推奨)

この記事では、Pythonプロジェクトでpyproject.tomlファイルを使用する方法について説明します。依存関係管理、ビルドシステムの設定、ツールチェーンの指定など、pyproject.tomlが提供する機能と利点について詳しく解説します。Python 3.11以降で推奨されるこのファイルを使用することで、プロジェクトの管理が容易になります。

目次

pyproject.tomlの概要

pyproject.tomlは、Pythonプロジェクトのメタデータと設定を記述するためのファイルです。従来のsetup.pyに代わるもので、PEP 621で標準化されました。Python 3.11以降では、多くのツールがpyproject.tomlを優先的に使用します。

このファイルを使用することで、プロジェクトの依存関係、ビルドシステム、ツールチェーンなどを一元的に管理できるため、プロジェクトの構成や共有が容易になります。

依存関係の指定(dependencies)

dependenciesセクションでは、プロジェクトに必要なライブラリとそのバージョンを指定します。

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "my-project"
version = "0.1.0"

[tool.poetry.dependencies]
python = "^3.9"
requests = "^2.28.1"

上記の例では、requestsライブラリとそのバージョンを指定しています。`^`記号は、互換性のある最新バージョンを使用することを意味します。

ビルドシステムの設定(build-system)

build-systemセクションでは、プロジェクトのビルドに使用するシステムを指定します。通常はsetuptoolsを使用します。

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

ツールチェーンの指定

pyproject.tomlでは、[tool]セクションを使用して、特定のツールの設定を指定できます。例えば、linterやformatterの設定などを記述できます。

[tool.black]
line-length = 88

[tool.flake8]
ignore = "E203,W503"

例:シンプルなプロジェクト設定

シンプルなプロジェクトのpyproject.tomlの例です。依存関係とプロジェクトのメタデータのみを記述しています。

[project]
name = "my-simple-project"
version = "0.1.0"

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[tool.poetry.dependencies]
python = "^3.9"

例:Poetryとの連携

Poetryを使用する場合は、Poetryがpyproject.tomlを自動的に生成・管理します。Poetryを使うことで、依存関係管理やパッケージングが容易になります。

poetry new my-poetry-project
cd my-poetry-project
poetry add requests

上記のコマンドを実行すると、Poetryがpyproject.tomlを作成し、requestsライブラリを追加します。

まとめ

pyproject.tomlを使用することで、Pythonプロジェクトの設定と管理が効率化されます。依存関係管理、ビルドシステム、ツールチェーンなどを一元的に管理し、プロジェクトの可読性と保守性を向上させることができます。Python 3.11以降では、pyproject.tomlが推奨される方法となっているため、積極的に活用しましょう。

関連記事