メインコンテンツへスキップ

Python 向けの pyproject.toml ファイル

pyproject.toml ファイルは、プロジェクトのビルドシステム要件と依存関係をすべて 1 つのファイルにまとめて指定する現代的な方法です。このガイドでは、開発環境と本番環境の一貫性を保つために pyproject.toml を作成、設定、利用する方法を説明します。

pyproject.toml ファイルとは?

pyproject.toml は、Python プロジェクトの依存関係、ビルドシステム、その他のメタデータを記述します。これにより次のことが可能になります。
  • あなたとチームが同一の環境を維持できる
  • 新しい協力者が環境を正確に再現できる
  • 開発用と本番用の依存関係を別々に設定できる

1

pyproject.toml ファイルを作成する

まず、プロジェクトのルートに pyproject.toml という名前のファイルを作成します。
2

プロジェクトの詳細を定義する

pyproject.toml ファイルでは、まずプロジェクトのメタデータを定義することから始めます。ここではプロジェクト名、バージョン、説明、その他の関連情報を定義します。
プロジェクト名は ASCII 文字、数字、アンダースコア「_」、ハイフン「-」、ピリオド「.」で構成する必要があります。アンダースコア、ハイフン、ピリオドで始まったり終わったりしてはいけません。例:
pyproject.toml
[project]
name = "my-python-project"
description = "A sample Python project using pyproject.toml"
version = "1.0.0"
3

プロジェクトの依存関係を記述する

次に、プロジェクトに必要な依存関係を記述します。開発用と本番用の両方の依存関係を指定できます。本番用の依存関係は dependencies セクションに記述し、開発用の依存関係は optional-dependencies の下に特定のグループ名(例: dev)を付けて記述できます。
依存関係のバージョンは、==>=< などの比較演算子を使って指定できます。以下の例ではバージョンを指定していません。これは最新版がインストールされることを意味します。 本番環境では、再現性を確保し、非互換な更新による破損を防ぐために、正確なバージョンを指定することを推奨します。
pyproject.toml
[project]
name = "my-python-project"
description = "A sample Python project using pyproject.toml"
version = "1.0.0"
dependencies = [
    "discord-py",
    "aiohttp"
]

[project.optional-dependencies]
dev = [
    "pytest",
    "black"
]
4

ビルドシステムを設定する

最後に、ビルドシステムの要件を指定する必要があります。これは pip のようなツールがプロジェクトのビルドとインストール方法を知るために必要です。ここではビルドバックエンドとして setuptools を使用します。これは Python プロジェクトで一般的な選択肢ですが、poetry などの他のものを選ぶこともできます。
pyproject.toml
[project]
name = "my-python-project"
description = "A sample Python project using pyproject.toml"
version = "1.0.0"
dependencies = [
    "discord.py",
    "aiohttp"
]

[project.optional-dependencies]
dev = [
    "pytest",
    "black"
]

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

pip で依存関係をインストールする

pyproject.toml ファイルに記述された依存関係をインストールするには、pip または pyproject.toml に対応した他のツールを使用できます。これにより、依存関係をインストールした状態でプロジェクトの作業を行えます。
pip install .
このコマンドは pyproject.toml ファイルを読み込み、dependencies に記述された依存関係をインストールし、開発用にプロジェクトをセットアップします。開発用の依存関係も併せてインストールしたい場合は、次を使用できます。
pip install .[dev]
これにより本番用と開発用の両方の依存関係がインストールされ、必要なツールをすべて揃えた状態でプロジェクトの作業を行えます。

ベストプラクティスとヒント:

  • 常に最新に保つ: 新しい依存関係を追加するたびに pyproject.toml を定期的に見直し、更新する
  • 正確なバージョンを使う: 本番環境での予期しない問題を避けるため、>>=、バージョン指定なしではなく、常に == を使う
  • バージョン管理: 依存関係の変更やバージョンの更新を追跡するため、pyproject.toml を git にコミットする
  • 隔離された環境: グローバルな競合を避けるため、プロジェクトごとに 1 つの仮想環境を維持する
  • ローカルでテストする: デプロイ前に、新しい環境で pip install . を使ってファイルをテストする

次のステップ

pyproject.toml ファイルの設定が完了したら:
  1. Git リポジトリにコミットする。
  2. プロジェクトを Square Cloud にホスティングする。
  3. GitHub 経由での自動 deploy を設定する。
  4. プロフェッショナルな Python アプリケーションホスティングへようこそ!
適切に構成された pyproject.toml ファイルは、あらゆる成功する Python アプリケーションの基盤であり、Square Cloud 上でアプリケーションが完璧に動作することを保証します。