Что означают = и == и т. Д. При указании номеров версий пакетов conda и pip в файлах YAML

Aug 17 2020

Мы используем файлы YAML, чтобы указать среды conda и pip. В них мы можем указать, какие номера версий нам нужны, используя, например, любую из этих строк

- cudatoolkit=10.2.89
- cudatoolkit=10.2.*
- cudatoolkit==10.2.89
- cudatoolkit==10.2.*

У меня возникли проблемы с поиском документации о том, что ==и что =означает в этих требованиях к пакету, а также о том, какие еще ограничения могут быть записаны и как.

В чем разница между =и в этой настройке ==? Различаются ли эти значения между conda и pip? Где найти правильную документацию (Google и Bing не очень хороши для поиска подобных символов)?

Ответы

3 jfahne Aug 17 2020 at 21:09

В PEP 440 операторы спецификации версии pip включают только те ==средства, которые соответствуют точной указанной версии. Спецификации соответствия пакетов Conda включают в себя ==то же самое, что и PEP 440, ==для точной спецификации версии и собственного оператора =, который предназначен для нечеткого сопоставления пакетов.