web-dev-qa-db-ja.com

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

の中に requirements.txt Python私が使用しているライブラリの場合、要件の1つは次のように指定されています。

mock-Django~=0.6.10

~=意味?

38
James Hiew

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

または、PEP 440によると:

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

>= V.N, == V.*

51
Maxime Lorant

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

次と同等です:mock-Django >= 0.6.10, == 0.6.*、および互換性があると予想されるバージョンを一致させる整頓された方法です。平易な英語では、「少なくとも0.6.10と同じくらい新しいmock-Djangoのバージョンが必要ですが、互換性がないほど新しくはありません」と言っているようなものです。

このすべてのバージョン番号についてよくわからない場合は、PEP440 version scheme をご覧ください。

7
user6669671

〜=は互換性のあるバージョンを意味します。 0.6.10以上(0.6。*)以上。

5
Nurjan

互換性のあるリリース句は、互換性のあるリリース演算子〜=とバージョン識別子で構成されます。指定されたバージョンと互換性があると予想される候補バージョンと一致します。

詳細はこちらをご覧ください: https://www.python.org/dev/peps/pep-0440/#compatible-release

3
Kieran