基本的なrequirements.txtからpyproject.tomlへの変換
シンプルなrequirements.txtファイル(基本的なパッケージ名とバージョン固定)をPEP 621で定義されたpyproject.tomlの依存関係フォーマットに変換する方法を学びます。
Getting Started
詳細な説明
基本的なrequirements.txtからpyproject.tomlへの変換は、最新のパッケージング標準を採用するPythonプロジェクトで最も一般的な移行タスクです。シンプルなrequirements.txtは1行に1パッケージを記載し、オプションでバージョン指定子を付けます。
requirements.txtの例:
requests==2.31.0
flask>=3.0
pydantic
pyproject.tomlに変換:
[project]
name = ""
version = "0.1.0"
requires-python = ">=3.8"
dependencies = [
"requests==2.31.0",
"flask>=3.0",
"pydantic",
]
フォーマットの主な違い:
- 文字列のクォート。
pyproject.tomlの各依存関係はダブルクォートで囲み、TOML配列内に配置する必要があります。 - 末尾のカンマ。 TOMLは配列の末尾カンマを許可しており、エントリの追加・削除が容易です。
- プロジェクトメタデータ。
pyproject.tomlにはrequirements.txtにないname、version、requires-pythonなどの追加フィールドが必要です。 - セクションヘッダー。 依存関係はフラットリストではなく
pyproject.tomlの[project]テーブル内に配置されます。
PEP 621フォーマットはpip、setuptools、hatch、flit、pdm、poetry(アダプター使用)を含むすべての主要なPythonビルドツールでサポートされています。
ユースケース
pip、hatch、またはflitを使用した最新のパッケージングを採用する際に、従来のrequirements.txtフォーマットからpyproject.tomlに小規模なPythonスクリプトやライブラリを移行する。