Wie vergleiche ich Versionsnummern in Python genau?

Mary-Kate Olsen
Freigeben: 2024-11-12 10:51:01
Original
898 Leute haben es durchsucht

How to Accurately Compare Version Numbers in Python?

Versionsnummern in Python vergleichen

In Python ist es oft notwendig, Versionen zu vergleichen, insbesondere wenn man mit der Paketverwaltung arbeitet oder Softwareabhängigkeiten verfolgt. Der direkte Vergleich von Zeichenfolgenversionen kann jedoch aufgrund der lexikografischen Reihenfolge zu falschen Ergebnissen führen.

Verwendung von „packaging.version.Version“

Die empfohlene Lösung ist die Verwendung von „packaging.version“. .Version-Klasse aus der Verpackungsbibliothek. Diese Klasse bietet Unterstützung für die Reihenfolge im PEP 440-Stil und stellt sicher, dass Versionen ordnungsgemäß gemäß den von der Python Packaging Authority definierten Regeln verglichen werden.

import packaging.version as version

version("2.3.1") < version("10.1.2")
# True

version("1.3.a4") < version("10.1.2")
# True
Nach dem Login kopieren

Alternativen

Prior Aufgrund der Verfügbarkeit von Paketen wurde das Modul distutils.version zum Versionsvergleich verwendet. Es ist jedoch veraltet und entspricht dem inzwischen abgelösten PEP 386. Es wird empfohlen, die Verwendung dieses Moduls zu vermeiden und sich stattdessen auf package.version.Version zu verlassen.

Veraltetes DISTutils.version-Modul

from distutils.version import LooseVersion, StrictVersion

LooseVersion("2.3.1") < LooseVersion("10.1.2")
# True

StrictVersion("2.3.1") < StrictVersion("10.1.2")
# True

StrictVersion("1.3.a4")
# ValueError: invalid version number '1.3.a4'
Nach dem Login kopieren

Beachten Sie, dass StrictVersion keine PEP 440-Versionen unterstützt und diese als „nicht“ betrachtet streng.“

Fazit

Bevorzugen Sie beim Vergleichen von Versionsnummern in Python die Klasse package.version.Version für genaue und zuverlässige Ergebnisse. Es folgt den neuesten PEP 440-Spezifikationen und gewährleistet eine konsistente Versionsreihenfolge. Vermeiden Sie die Verwendung des veralteten Moduls distutils.version, da dies zu falschen Vergleichen führen kann.

Das obige ist der detaillierte Inhalt vonWie vergleiche ich Versionsnummern in Python genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage