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 サイトの他の関連記事を参照してください。