В requirements.txt
библиотеке Python, которую я использую, одно из требований указано следующим образом:
mock-django~=0.6.10
Что ~=
значит?
В requirements.txt
библиотеке Python, которую я использую, одно из требований указано следующим образом:
mock-django~=0.6.10
Что ~=
значит?
Ответы:
Это означает, что он выберет последнюю версию пакета, больше или равную 0.6.10, но все еще имеющую версию 0.6. *, Поэтому, например, он не будет загружать 0.7.0. Это гарантирует, что вы получите исправления безопасности, но сохраните обратную совместимость, если сопровождающий пакета соблюдает семантическое управление версиями (в котором указано, что критические изменения должны происходить только в основных версиях).
Или, как сказано в PEP 440:
Для данного идентификатора выпуска VN раздел о совместимом выпуске приблизительно эквивалентен паре предложений сравнения:
>= V.N, == V.*
Это спецификатор версии «совместимого выпуска» .
Это эквивалент:, mock-django >= 0.6.10, == 0.6.*
и представляет собой удобный способ сопоставления версии, которая должна быть совместимой. На простом английском это немного похоже на высказывание: «Мне нужна версия mock-django, которая по крайней мере такая же новая, как 0.6.10, но не настолько новая, чтобы быть несовместимой с ней».
Если вы не уверены во всем этом номере версии, беглый взгляд на схему версии PEP440 поможет вам разобраться!
Предложение совместимого выпуска состоит из оператора совместимого выпуска ~ = и идентификатора версии. Он соответствует любой версии кандидата, которая, как ожидается, будет совместима с указанной версией.
Вы можете прочитать больше здесь: https://www.python.org/dev/peps/pep-0440/#compatible-release