У 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