keep-loving-pythonのブログ

Pythonを愛し続けたいです(Pythonが流行っている限りですが。。。)

pip、requirements.txt で見かける、"~="の意味は?

pip、requirements.txt で見かける、"~="の意味は?

回答

https://stackoverflow.com/questions/39590187/in-requirements-txt-what-does-tilde-equals-mean を見て下さい。

上記から引用します。

これは、0.6.10 以上で 0.6.* 版のパッケージの最新版を選択することを意味し、例えば 0.7.0 をダウンロードすることはありません。パッケージメンテナがセマンティックバージョニング (メジャーバージョンでのみ変更を加えるべきという考え方) を尊重していれば、セキュリティフィックスを受けつつ後方互換性を保つことができます。

あるいは、PEP 440 で述べられているように。

与えられたリリース識別子V.Nに対して、互換性のあるリリース句は、比較句のペアとほぼ等価です。

= V.N, == V.* とほぼ同じです。

こちらの回答がより見やすいか?引用します。

Adding to the existing answers, I think it's very important to also mention that while

~=0.6.10 means >=0.6.10, ==0.6.*

Following is also true

~=0.6 means >=0.6, ==0.*

コメント

特にありません。