En la matière.txt, que signifie tilde equals ( ~ = )?

Dans le requirements.txt pour une bibliothèque Python que j'utilise, l'une des exigences est spécifiée comme:

mock-django~=0.6.10

Que veut dire ~=?

27
demandé sur James Hiew 2016-09-20 12:18:05

4 réponses

Cela signifie qu'il sélectionnera la dernière version du paquet, supérieure ou égale à 0.6.10, mais toujours dans la 0.6.* version, donc il ne téléchargera pas 0.7.0 par exemple. Cela garantit que vous obtiendrez des correctifs de sécurité tout en conservant la rétrocompatibilité, si le responsable du paquet respecte le versioning sémantique (qui stipule que les modifications de rupture ne doivent se produire que dans les versions majeures).

Ou, comme dit par Pep 440:

Pour un identificateur de version V. N donné, la clause de version compatible est approximativement équivalent à la paire de clauses de comparaison:

>= V.N, == V.*

29
répondu Maxime Lorant 2018-06-14 11:34:34

C'est la 'version compatible' spécificateur de version.

C'est équivalent à: mock-django >= 0.6.10, == 0.6.*, et c'est un moyen bien rangé de faire correspondre une version qui devrait être compatible. En anglais simple, c'est un peu comme dire: "j'ai besoin d'une version de mock-django qui est au moins aussi nouvelle que 0.6.10, mais pas si Nouvelle qu'elle n'est pas compatible avec elle."

Si vous n'êtes pas sûr de tous ces trucs de numéro de version, un rapide coup d'oeil à la PEP440 version scheme devrait vous Trier!

6
répondu 2016-09-20 10:30:13

~= signifie une version compatible. Pas moins de 0.6.10 et plus (0.6.*).

4
répondu Nurjan 2016-09-20 09:27:48

Une clause de version compatible comprend l'opérateur de version compatible ~= et un identificateur de version. Il correspond à toute version candidate qui devrait être compatible avec la version spécifiée.

Vous pouvez en lire plus ici: https://www.python.org/dev/peps/pep-0440/#compatible-release

3
répondu Kieran 2016-09-20 09:23:10