Requirements.txtで、チルダが等しい(〜=)とはどういう意味ですか?


109

ではrequirements.txt、私が使用していますPythonライブラリのために、要件の一つは、同様に指定されています。

mock-django~=0.6.10

どういう~=意味ですか?

回答:


126

これは、0.6.10以上のパッケージの最新バージョンを選択することを意味しますが、0.6。*バージョンのままであるため、たとえば0.7.0はダウンロードされません。パッケージメンテナがセマンティックバージョニング(重大な変更はメジャーバージョンでのみ発生する必要があると述べています)を尊重する場合、セキュリティ修正を確実に取得できますが、下位互換性は維持されます。

または、PEP 440で述べられているように:

特定のリリース識別子VNの場合、互換性のあるリリース句は、比較句のペアとほぼ同等です。

>= V.N, == V.*


3
"約"?この同等性に例外はありますか?
AXO

1
@AXO AFAIK、リリース前/リリース後のバージョンマッチングには微妙な点があります。ほとんどの場合、これは基本的な使用法には影響せず、とにかくメジャー/マイナーバージョンのマッチングに限定されます。
MaximeLorant19年

14

これが「互換リリース」バージョン指定子です。

これmock-django >= 0.6.10, == 0.6.*は:と同等であり、互換性が期待されるバージョンを照合するための整然とした方法です。平易な英語では、「少なくとも0.6.10と同じくらい新しいバージョンのモックジャンゴが必要ですが、互換性がないほど新しいバージョンは必要ありません」と言っているようなものです。

このバージョン番号のすべてについてよくわからない場合は、PEP440バージョンスキームをざっと見てみるとわかりやすくなります。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.