Nächste: , Vorige: , Nach oben: Paketrichtlinien   [Inhalt][Index]


22.4.7 Python-Module

Zurzeit stellen wir ein Paket für Python 2 und eines für Python 3 jeweils über die Scheme-Variablen mit den Namen python-2 und python zur Verfügung, entsprechend der Erklärungen im Abschnitt Versionsnummern. Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, erscheint es als wünschenswert, dass der Name eines Pakets für ein Python-Modul auch das Wort python enthält.

Manche Module sind nur mit einer Version von Python kompatibel, andere mit beiden. Wenn das Paket Foo mit Python 3 kompiliert wird, geben wir ihm den Namen python-foo. Wenn es mit Python 2 kompiliert wird, wählen wir den Namen python2-foo. Pakete sollten dann hinzugefügt werden, wenn sie gebraucht werden. Wir erstellen keine Python-2-Varianten von Paketen, wenn wir sie nicht benutzen wollen.

Wenn ein Projekt bereits das Wort python im Namen hat, lassen wir es weg; zum Beispiel ist das Modul python-dateutil unter den Namen python-dateutil und python2-dateutil verfügbar. Wenn der Projektname mit py beginnt (z.B. pytz), behalten wir ihn bei und stellen das oben beschriebene Präfix voran.

Anmerkung: Im Moment sind gleich zwei verschiedene Erstellungssysteme für Python-Pakete in Guix in Umlauf: python-build-system und pyproject-build-system. Lange Zeit hat man sein Python-Paket aus einer Datei setup.py heraus erstellt, deren gewachsene Struktur nicht formell festgelegt war. Das lief überraschend gut, wenn man sich den Erfolg von Python anschaut, allerdings ließen sich nur schwer Werkzeuge zur Handhabung schreiben. Daraus ergab sich eine Vielzahl alternativer Erstellungssysteme, bis sich die Gemeinschaft auf einen formellen Standard zum Festlegen der Erstellungsanforderungen geeinigt hatte. pyproject-build-system ist die Implementierung dieses Standards in Guix. Wir stufen es als „experimentell“ ein, insofern als dass es noch nicht all die Build Backends für PEP-517 unterstützt. Dennoch würden wir es begrüßen, wenn Sie es für neue Python-Pakete verwenden und Probleme melden würden. Schlussendlich wird es für veraltet erklärt werden und in python-build-system aufgehen.

22.4.7.1 Abhängigkeiten angeben

Informationen über Abhängigkeiten von Python-Paketen, welche mal mehr und mal weniger stimmen, finden sich normalerweise im Verzeichnisbaum des Paketquellcodes: in der Datei pyproject.toml, der Datei setup.py, in requirements.txt oder in tox.ini (letztere beherbergt hauptsächlich Abhängigkeiten für Tests).

Wenn Sie ein Rezept für ein Python-Paket schreiben, lautet Ihr Auftrag, diese Abhängigkeiten auf angemessene Arten von „Eingaben“ abzubilden (siehe Eingaben). Obwohl der pypi-Importer hier normalerweise eine gute Arbeit leistet (siehe guix import aufrufen), könnten Sie die folgende Prüfliste durchgehen wollen, um zu bestimmen, wo welche Abhängigkeit eingeordnet werden sollte.


Nächste: Perl-Module, Vorige: Emacs-Pakete, Nach oben: Paketrichtlinien   [Inhalt][Index]