Pip: указание второстепенной версии

#python #pip #distribute

#python #pip #распространять

Вопрос:

В моем requirements.txt файле я хочу указать, что моему приложению нужен Django версии 1.3.x. То есть либо 1.3.0, либо 1.3.1, либо 1.3.2 и т.д. (Когда они выйдут.) Но не 1.4, когда она выйдет.

Какой синтаксис для этого?

Ответ №1:

Согласно Яну Бикингу:

 Django>=1.3,<1.4
  

Однако, очевидно, что это делать безопаснее:

 Django>=1.3,<1.3.99
  

Комментарии:

1. Возможно, это очевидно, но имейте в виду, что если вы хотите автоматически обновлять Django при выходе новой версии на PyPI, вам следует вызвать pip с флагом —upgrade , вот так: pip install --upgrade -r requirements.txt

2. Что произойдет, если у вас (гипотетически) был Django v1.3.100 или более поздняя версия?

3. Вы можете использовать ~=1.3.0 для получения последней версии исправления, см. nok.github.io/pipdev?spec =~=1.3.0amp;версии=1.3.9999 .

Ответ №2:

моему приложению нужен Django версии 1.3.x

В вашем случае используйте один из:


Совместимый выпуск

 Django~=1.3.0
  

Ссылка: версия, совместимая с PEP 440


Соответствие версии

 Django==1.3.*
  

Ссылка: соответствие версии PEP 440


Упорядоченное сравнение

 Django>=1.3,<1.4
  

Примечание: упорядоченные операторы работают для вашего случая после изменения, внесенного в этот коммит в 2015 году

Ссылка: PEP 440 включает упорядоченное сравнение

Ссылка: PEP 440 Эксклюзивное упорядоченное сравнение