Hinweis: Obwohl JavaScript für diese Website nicht unbedingt erforderlich ist, werden Ihre Interaktionsmöglichkeiten mit den Inhalten eingeschränkt sein. Bitte aktivieren Sie JavaScript für das volle Erlebnis.

Python Distutils-SIG: Anforderungen

Python Distutils-SIG

Anforderungen

Die vorgeschlagenen Modulverteilungsdienstprogramme für Python, kurz distutils, werden benötigt, um eine Reihe lang bestehender Lücken in der Python-Distribution und -Kultur zu schließen. In ungefähr absteigender Reihenfolge der Priorität:

  • Es muss einen einfachen, standardisierten Weg für Benutzer und Administratoren geben, neue Module (einschließlich Erweiterungsmodule) zu einer bestehenden Python-Installation auf jeder von Python selbst unterstützten Plattform hinzuzufügen.
  • Es muss einen einfachen, standardisierten Weg geben, "Metadaten" über eine Modulverteilung zu charakterisieren, wie z. B. Name, Versionsnummer, Anwendungsbereich, Beschreibung usw. für die Verwendung durch Indizierungs- und Suchwerkzeuge.
  • Es muss einen einfachen, standardisierten Weg geben, "erstellte Distributionen" (fertig zu installierende herunterladbare Ressourcen, bei denen die gesamte Kompilierung und sonstige Verarbeitung abgeschlossen ist) für die wichtigsten Plattformen zu erstellen.
  • Modulverteilungen müssen eine standardisierte Methode haben, um ihre Abhängigkeiten von anderen Modulen (sowohl einfache Anwesenheit/Abwesenheit als auch erforderliche Versionsnummer) und von Python selbst (Versionsnummer) auszudrücken, und diese Abhängigkeiten müssen zur Zeit der Einrichtung/des Builds/der Installation überprüft werden.
  • Es muss möglich sein (und vorzugsweise einfach), stattdessen eine Quellcode-Distribution herunterzuladen und zu kompilieren. (Notwendig für Personen, die nicht zufällig eine der wichtigsten Plattformen verwenden oder die erstellten Distributionen nicht vertrauen.)
  • Um die Installation aller Module und die Erstellung von Erweiterungsmodulen aus C/C++-Quellcode zu unterstützen, muss es einen standardisierten Weg geben, Python-Konfigurationsdaten (wie z. B. Compiler, Compiler-Flags, Plattform, Standardbibliothek-Verzeichnis usw.) zu erhalten.
  • Es muss für einen Modulentwickler einfach sein, sowohl Quellcode- als auch erstellte Distributionen zu erstellen.
  • Es muss für einen Dritten (den "Packager") einfach sein, eine Quellcode-Distribution herunterzuladen, sie auf einer bestimmten Plattform zu kompilieren und eine erstellte Distribution für diese Plattform zu erstellen, die dann von weniger anspruchsvollen Benutzern dieser Plattform trivial verwendet werden kann.

Ich habe auch eine Zusammenfassung der Aufgabenteilung und gemeinsamen Aufgaben geschrieben, die eine detailliertere Aussage über die Projektanforderungen darstellt und das Problem aus einem anderen Blickwinkel betrachtet.