Heim >Backend-Entwicklung >Python-Tutorial >Wie vergleiche ich Versionsnummern in Python genau?

Wie vergleiche ich Versionsnummern in Python genau?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-12 10:51:01938Durchsuche

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

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'

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!

Stellungnahme:
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