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.
