首頁  >  文章  >  後端開發  >  如何可靠地比較 Python 中的版本號?

如何可靠地比較 Python 中的版本號?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-22 06:44:12227瀏覽

How to Reliably Compare Version Numbers in Python?

比較Python 中的版本號

遍歷包含同一個Egg 的多個版本的目錄時,確保僅添加最新版本到sys .path可能會帶來挑戰,因為在比較版本字串時,版本字串的順序不直觀strings.

使用打包.version

Python 透過打包.version模組提供了一個優雅的解決方案,該模組支援PEP 440 樣式的版本字串排序。此模組提供了 Version 類,可用於準確比較版本。

from packaging.version import Version

# Example:
version1 = Version("2.3.1")
version2 = Version("10.1.2")
print(version1 < version2)  # True

傳統方法

比較版本字串的較舊方法是 distutils.version 。但是,它已被棄用並遵循被取代的 PEP 386。它提供了兩個類,LooseVersion 和 StrictVersion。

from distutils.version import LooseVersion, StrictVersion

# LooseVersion compares versions loosely:
version1 = LooseVersion("2.3.1")
version2 = LooseVersion("10.1.2")
print(version1 < version2)  # True

# StrictVersion is stricter in its comparison:
version1 = StrictVersion("2.3.1")
version2 = StrictVersion("10.1.2")
print(version1 < version2)  # True

# However, it doesn't recognize valid PEP 440 versions as strict:
version1 = StrictVersion("1.3.a4")
print(version1)  # ValueError: invalid version number '1.3.a4'

結論

在 Python 中比較版本號時, Packaging.version 提供了可靠且優雅的解決方案。它遵循當前的 PEP 440 規範,並提供乾淨簡潔的 API 用於版本比較。

以上是如何可靠地比較 Python 中的版本號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn