基本的な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",
]

フォーマットの主な違い:

  1. 文字列のクォート。 pyproject.tomlの各依存関係はダブルクォートで囲み、TOML配列内に配置する必要があります。
  2. 末尾のカンマ。 TOMLは配列の末尾カンマを許可しており、エントリの追加・削除が容易です。
  3. プロジェクトメタデータ。 pyproject.tomlにはrequirements.txtにないnameversionrequires-pythonなどの追加フィールドが必要です。
  4. セクションヘッダー。 依存関係はフラットリストではなくpyproject.toml[project]テーブル内に配置されます。

PEP 621フォーマットはpipsetuptoolshatchflitpdmpoetry(アダプター使用)を含むすべての主要なPythonビルドツールでサポートされています。

ユースケース

pip、hatch、またはflitを使用した最新のパッケージングを採用する際に、従来のrequirements.txtフォーマットからpyproject.tomlに小規模なPythonスクリプトやライブラリを移行する。

試してみる — Requirements ↔ Pyproject

フルツールを開く