Zum Hauptinhalt springen

pyproject.toml-Datei für Python

Die pyproject.toml-Datei ist eine moderne Möglichkeit, alle Anforderungen an das Build-System und die Abhängigkeiten deines Projekts in einer einzigen Datei anzugeben. Diese Anleitung zeigt, wie du pyproject.toml erstellst, konfigurierst und verwendest, um Konsistenz zwischen Entwicklungs- und Produktionsumgebungen sicherzustellen.

Was ist eine pyproject.toml-Datei?

Eine pyproject.toml listet Abhängigkeiten, das Build-System und weitere Metadaten deines Python-Projekts auf. Das ermöglicht:
  • Dir und deinem Team, identische Umgebungen zu pflegen
  • Neuen Mitwirkenden, die Umgebung exakt zu reproduzieren
  • Entwicklungs- und Produktionsabhängigkeiten getrennt einzurichten

1

Erstelle die pyproject.toml-Datei

Erstelle zunächst eine Datei namens pyproject.toml im Stammverzeichnis deines Projekts.
2

Lege die Details deines Projekts fest

Beginne in der pyproject.toml-Datei damit, die Metadaten deines Projekts zu definieren. Wir legen den Projektnamen, die Version, die Beschreibung und weitere relevante Informationen fest.
Der Projektname muss aus ASCII-Buchstaben, Ziffern, Unterstrichen „_“, Bindestrichen „-“ und Punkten „.“ bestehen. Er darf nicht mit einem Unterstrich, Bindestrich oder Punkt beginnen oder enden. Zum Beispiel:
pyproject.toml
[project]
name = "my-python-project"
description = "A sample Python project using pyproject.toml"
version = "1.0.0"
3

Liste die Abhängigkeiten des Projekts auf

Als Nächstes listen wir die für unser Projekt erforderlichen Abhängigkeiten auf. Wir können sowohl Entwicklungs- als auch Produktionsabhängigkeiten angeben. Die Produktionsabhängigkeiten werden im Abschnitt dependencies aufgeführt, während Entwicklungsabhängigkeiten unter optional-dependencies mit einem bestimmten Gruppennamen (z. B. dev) aufgeführt werden können.
Du kannst Versionen für deine Abhängigkeiten mithilfe von Vergleichsoperatoren wie ==, >=, <… angeben. Im folgenden Beispiel geben wir keine Versionen an. Das bedeutet, dass jeweils die neueste Version installiert wird. Es wird empfohlen, exakte Versionen anzugeben, um Reproduzierbarkeit sicherzustellen und Fehler durch inkompatible Updates in der Produktion zu vermeiden.
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

Richte das Build-System ein

Schließlich müssen wir die Anforderungen an das Build-System angeben. Das ist notwendig, damit Tools wie pip wissen, wie sie dein Projekt bauen und installieren. Wir verwenden setuptools als Build-Backend, was eine gängige Wahl für Python-Projekte ist, aber du kannst auch andere wie poetry wählen.
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"

Abhängigkeiten mit pip installieren

Um die in deiner pyproject.toml-Datei aufgeführten Abhängigkeiten zu installieren, kannst du pip oder andere Tools verwenden, die pyproject.toml unterstützen. So kannst du an deinem Projekt arbeiten, während die Abhängigkeiten installiert sind.
pip install .
Dieser Befehl liest die pyproject.toml-Datei, installiert die unter dependencies aufgeführten Abhängigkeiten und richtet dein Projekt für die Entwicklung ein. Wenn du auch die Entwicklungsabhängigkeiten installieren möchtest, kannst du Folgendes verwenden:
pip install .[dev]
Damit werden sowohl die Produktions- als auch die Entwicklungsabhängigkeiten installiert, sodass du mit allen notwendigen Tools an deinem Projekt arbeiten kannst.

Best Practices und Tipps:

  • Aktuell halten: Überprüfe und aktualisiere pyproject.toml regelmäßig, wenn du neue Abhängigkeiten hinzufügst
  • Exakte Versionen verwenden: Verwende immer == statt >, >= oder keiner Version, um Überraschungen in der Produktion zu vermeiden
  • Versionierung: Committe pyproject.toml in git, um Änderungen an Abhängigkeiten und Versions-Updates nachzuverfolgen
  • Isolierte Umgebung: Pflege eine virtuelle Umgebung pro Projekt, um globale Konflikte zu vermeiden
  • Lokal testen: Teste die Datei vor dem Deploy mit pip install . in einer neuen Umgebung

Nächste Schritte

Wenn deine pyproject.toml-Datei konfiguriert ist:
  1. Committe sie in dein Git-Repository.
  2. Hoste dein Projekt auf Square Cloud.
  3. Richte automatischen Deploy über GitHub ein.
  4. Willkommen beim professionellen Hosting von Python-Anwendungen!
Eine gut strukturierte pyproject.toml-Datei ist die Grundlage für jede erfolgreiche Python-Anwendung und stellt sicher, dass deine Anwendung auf Square Cloud einwandfrei funktioniert.