Как установить пакет с минимальным и максимальным диапазоном версий? - PullRequest
181 голосов
/ 10 января 2012

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

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

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

Ответы [ 3 ]

233 голосов
/ 11 января 2012

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

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

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

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

49 голосов
/ 03 января 2018

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

pip install package==0.5.*

, что более согласованно и легко читается.

39 голосов
/ 28 апреля 2018

Элегантный способ - использовать ~= совместимый оператор деблокирования в соответствии с 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.*
...