In der requirements.txt
für eine Python-Bibliothek, die ich verwende, wird eine der folgenden Anforderungen angegeben:
mock-django~=0.6.10
Was heißt ~=
das
In der requirements.txt
für eine Python-Bibliothek, die ich verwende, wird eine der folgenden Anforderungen angegeben:
mock-django~=0.6.10
Was heißt ~=
das
Antworten:
Dies bedeutet, dass die neueste Version des Pakets ausgewählt wird, die größer oder gleich 0.6.10 ist, aber immer noch in der Version 0.6. * Ist, sodass beispielsweise nicht 0.7.0 heruntergeladen wird. Es stellt sicher, dass Sie Sicherheitskorrekturen erhalten, aber die Abwärtskompatibilität beibehalten, wenn der Paketbetreuer die semantische Versionierung respektiert (die besagt, dass wichtige Änderungen nur in Hauptversionen auftreten sollten).
Oder wie von PEP 440 gesagt:
Für eine gegebene Versionskennung VN entspricht die kompatible Freigabeklausel ungefähr dem Paar von Vergleichsklauseln:
>= V.N, == V.*
Dies ist der Versionsspezifizierer für kompatible Versionen .
Es ist äquivalent zu: mock-django >= 0.6.10, == 0.6.*
und ist eine ordentliche Methode, um eine Version abzugleichen, von der erwartet wird, dass sie kompatibel ist. Im Klartext ist es ein bisschen so, als würde man sagen: "Ich brauche eine Version von Mock-Django, die mindestens so neu wie 0.6.10 ist, aber nicht so neu, dass sie nicht damit kompatibel ist."
Wenn Sie sich bei all diesen Versionsnummern nicht sicher sind , sollten Sie einen kurzen Blick auf das PEP440- Versionsschema werfen !
Eine kompatible Release-Klausel besteht aus dem kompatiblen Release-Operator ~ = und einer Versionskennung. Es entspricht jeder Kandidatenversion, von der erwartet wird, dass sie mit der angegebenen Version kompatibel ist.
Weitere Informationen finden Sie hier: https://www.python.org/dev/peps/pep-0440/#compatible-release