ホームページ  >  記事  >  バックエンド開発  >  Python でバージョン番号を正確に比較するにはどうすればよいですか?

Python でバージョン番号を正確に比較するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-12 10:51:01890ブラウズ

How to Accurately Compare Version Numbers in Python?

Python でのバージョン番号の比較

Python では、特にパッケージ管理やソフトウェアの依存関係の追跡を行う場合に、バージョンを比較することが必要になることがよくあります。ただし、文字列のバージョンを直接比較すると、辞書編集上の順序により不正確な結果が生じる可能性があります。

packaging.version.Version の使用

推奨される解決策は、packaging.version を使用することです。パッケージ化ライブラリの .Version クラス。このクラスは、PEP 440 スタイルの順序付けのサポートを提供し、Python Packaging Authority によって定義されたルールに従ってバージョンが適切に比較されるようにします。

import packaging.version as version

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

version("1.3.a4") < version("10.1.2")
# True

Alternatives

Priorパッケージ化が可能であるため、バージョンの比較には distutils.version モジュールが使用されました。ただし、これは非推奨となり、現在は置き換えられた PEP 386 に準拠しています。このモジュールの使用を避け、代わりに package.version.Version に依存することをお勧めします。

非推奨の DISTutils.version モジュール

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'

StrictVersion は PEP 440 のバージョンを「厳密ではない」とみなし、サポートしていないことに注意してください。

結論

次のバージョン番号を比較する場合Python では、正確で信頼性の高い結果を得るために、packaging.version.Version クラスを推奨します。最新の PEP 440 仕様に従っており、一貫したバージョンの順序が保証されます。非推奨の distutils.version モジュールの使用は避けてください。誤った比較が行われる可能性があります。

以上がPython でバージョン番号を正確に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。