Que signifient = et == etc. lors de la spécification des numéros de version des packages conda et pip dans les fichiers YAML

Aug 17 2020

Nous utilisons des fichiers YAML pour spécifier nos environnements conda et pip. En eux, nous pouvons spécifier les numéros de version dont nous avons besoin en utilisant, par exemple, l'une de ces lignes

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

J'ai du mal à trouver la documentation sur ce que ==signifient =ces exigences de package et quelles autres restrictions pourraient être écrites et comment.

Quelle est la différence dans ce réglage entre =et ==? Ces significations diffèrent-elles entre conda et pip ? Où est la bonne documentation (Google et Bing ne sont pas doués pour rechercher des symboles comme ceux-là) ?

Réponses

3 jfahne Aug 17 2020 at 21:09

Dans la PEP 440 , les opérateurs de spécification de version de pip incluent uniquement ==ce qui signifie correspondre à la version exacte spécifiée. Les spécifications de correspondance de packages de Conda incluent ==les mêmes que celles de PEP 440 ==pour la spécification de version exacte et leur propre opérateur, =, qui est pour la correspondance de packages flous.