W requirements.txt
przypadku biblioteki Pythona, której używam, określono jedno z wymagań, na przykład:
mock-django~=0.6.10
Co to ~=
znaczy?
W requirements.txt
przypadku biblioteki Pythona, której używam, określono jedno z wymagań, na przykład:
mock-django~=0.6.10
Co to ~=
znaczy?
Odpowiedzi:
Oznacza to, że wybierze najnowszą wersję pakietu, wyższą lub równą 0.6.10, ale nadal w wersji 0.6. *, Więc nie pobierze na przykład 0.7.0. Zapewnia uzyskanie poprawek bezpieczeństwa, ale zachowuje zgodność wsteczną, jeśli opiekun pakietu przestrzega semantycznej wersji (która stwierdza, że istotne zmiany powinny wystąpić tylko w głównych wersjach).
Lub, jak powiedział PEP 440:
Dla danego identyfikatora wydania VN zgodna klauzula zwolnienia jest w przybliżeniu równoważna parze klauzul porównania:
>= V.N, == V.*
To jest „kompatybilny release” wersja specifier .
Odpowiada mock-django >= 0.6.10, == 0.6.*
:, i jest uporządkowanym sposobem dopasowania wersji, która ma być zgodna. Mówiąc prostym językiem, to trochę tak, jakby powiedzieć: „Potrzebuję wersji mock-django, która jest co najmniej tak nowa jak 0.6.10, ale nie tak nowa, żeby nie była z nią kompatybilna”.
Jeśli nie masz pewności co do tych wszystkich numerów wersji, szybkie spojrzenie na schemat wersji PEP440 powinno Cię rozwiązać!
Zgodna klauzula wydania składa się z kompatybilnego operatora wydania ~ = i identyfikatora wersji. Pasuje do dowolnej wersji kandydata, która ma być zgodna z określoną wersją.
Możesz przeczytać więcej tutaj: https://www.python.org/dev/peps/pep-0440/#compatible-release