Как установить пакет с минимальным и максимальным диапазоном?

Мне интересно, есть ли способ сообщить pip, в частности, в файле требований, установить пакет с минимальной версией (pip install package>=0.2) и максимальную версию, которая никогда не должна быть установлена (теоретический api: pip install package<0.3).

Я спрашиваю, потому что я использую стороннюю библиотеку, которая находится в активной разработке. Я бы хотел, чтобы мой файл требований к приложениям указывал, что он должен всегда устанавливать самую последнюю небольшую версию ветки 0.5.x, но я не хочу, чтобы программа никогда не пыталась установить новые более крупные версии (например, 0.6.x), поскольку API отличается. Это важно, потому что, хотя ветвь 0.6.x доступна, разработчики все еще выпускают исправления и исправления для ветки 0.5.x, поэтому я не хочу использовать статический package==0.5.9 в файле требований,

Есть ли способ сделать это?

Ответ 1

Вы можете сделать:

$ pip install "package>=0.2,<0.3"

И pip будет искать наилучшее соответствие, предполагая, что версия не менее 0,2 и меньше 0,3.

Это также относится к файлам требований . Подробные сведения о спецификаторах версии см. В PEP 440.

Ответ 2

вы также можете использовать:

pip install package==0.5.*

который является более последовательным и легко читаемым.

Ответ 3

Элегантным методом было бы использовать оператор ~= совместимый оператор выпуска в соответствии с PEP 440. В вашем случае это будет:

package~=0.5.0

В качестве примера, если существуют следующие версии, он выбирает 0.5.9:

  • 0.5.0
  • 0.5.9
  • 0.6.0

Для пояснения каждая пара эквивалентна:

~= 0.5.0
>= 0.5.0, == 0.5.*

~= 0.5
>= 0.5, == 0.*