Pythonでpyproject.tomlを使う(Python 3.11以降推奨)
この記事では、Pythonプロジェクトでpyproject.tomlファイルを使用する方法について説明します。依存関係管理、ビルドシステムの設定、ツールチェーンの指定など、pyproject.tomlが提供する機能と利点について詳しく解説します。Python 3.11以降で推奨されるこのファイルを使用することで、プロジェクトの管理が容易になります。
目次
- pyproject.tomlの概要
- 依存関係の指定(dependencies)
- ビルドシステムの設定(build-system)
- ツールチェーンの指定
- 例:シンプルなプロジェクト設定
- 例:Poetryとの連携
- まとめ
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が推奨される方法となっているため、積極的に活用しましょう。