Angaben in PyPi richtig interpretieren

Probleme bei der Installation?
Antworten
bb1898
User
Beiträge: 209
Registriert: Mittwoch 12. Juli 2006, 14:28

Wiederkehrende Situation: eine neue Python-Version wird freigegeben (nehmen wir als Beispiel 3.13). Es dauert ein bisschen, bis die gewünschten zusätzlichen Pakete dafür fertig sind - wie lange, das hängt unter anderem davon ab, was man denn so braucht.

Also mache ich mir mit "pip list" eine Liste, werfe alles raus, was als Abhängigkeit mitkommt und schaue mir dann in PyPI den Status der einzelnen Pakete an. Und da liegt die Unklarheit: In den "Unverified details" gibt es einerseits den Abschnitt "Meta" und darin den Eintrag "Benötigt:". Da steht meistens "Python >= 3.x", manchmal "Python >= 3.x, <= 3.y". Im letzteren Fall ist die Sache klar. Im ersten Fall gucke ich dann als nächstes im Abschnitt "Kategorien" unter "Programming Language" und finde dort meistens eine Liste von Python-Versionen.

Meine Frage: wenn die neueste Version, jetzt also Python 3.13, dort nicht vertreten ist - heißt das, das Paket ist mit dieser Version noch nicht verwendbar, oder heißt es das nicht? Mein Zweifel speist sich konkret aus sympy: dort steht nicht einmal Python 3.12 in der Liste, unter der Version habe ich es aber installiert und kann es auch benutzen.

Ich sollte noch dazu sagen, dass ich für meinen eigenen Bedarf programmiere - wenn also etwas plötzlich nicht mehr so funktioniert wie vorher, kriegt außer mir niemand ein Problem. Ich kann mir also auch die Zeit nehmen, das Programm an die neue Version anzupassen.
Benutzeravatar
__blackjack__
User
Beiträge: 13684
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@bb1898: Das sind alles freiwillige Angaben. Die müssen weder vorhanden sein, noch stimmen. Pakete müssen für eine neue Python-Version ja eigentlich nur neu erstellt/aktualisiert werden wenn sie tatsächlich was machen/enthalten was nicht rückwärtskompatibel ist. Reiner Python-Code ist das fast immer. C-Erweiterungen die gegen die Limited- oder Stable-API programmiert sind, funktionieren auch mit einer entsprechenden Wahrscheinlichkeit weiterhin.

Das einfachste ist bei einer neuen Python-Version ein venv anzulegen, da alle benötigten Abhängigkeiten rein zu installieren, und dann die eigenen Testcases laufen zu lassen. Dann sieht man ja wenn etwas nicht geht. Und was/wo es nicht geht. Da kann man dann gezielt auf ein Update des betroffenen Pakets bei PyPI warten, und es dann erneut versuchen. Solange bis es geht — dann weiss man, dass man auch die neue Python-Version verwenden kann.
„Incorrect documentation is often worse than no documentation.“ — Bertrand Meyer
Antworten