比較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中文網其他相關文章!