Je me demande s’il est possible de dire à pip, en particulier dans un fichier de configuration, d’installer un paquet ayant à la fois une version minimale (pip install package>=0.2
) Et une version maximale qui ne devrait jamais être installée (api théorique: pip install package<0.3
).
Je pose la question parce que j'utilise une bibliothèque tierce en développement actif. J'aimerais que mon fichier d'exigences pip spécifie qu'il doit toujours installer la version mineure la plus récente de la branche 0.5.x, mais je ne veux pas que pip essaye d'installer une nouvelle version majeure (telle que 0.6.x), car l'API est différent. Ceci est important car, même si la branche 0.6.x est disponible, les développeurs publient toujours des correctifs et des corrections de bugs sur la branche 0.5.x. Par conséquent, je ne souhaite pas utiliser une ligne statique package==0.5.9
Dans mon fichier de configuration. .
Y'a-t'il un quelconque moyen d'y arriver?
Tu peux faire:
$ pip install "package>=0.2,<0.3"
Et pip
cherchera la meilleure correspondance, en supposant que la version est au moins égale à 0,2 et inférieure à 0,3.
Ceci s’applique également à pip fichiers d’exigences . Voir les détails complets sur les spécificateurs de version dans PEP 44 .
vous pouvez aussi utiliser:
pip install package==0.5.*
ce qui est plus cohérent et facile à lire.
Une méthode élégante consisterait à utiliser le ~=
opérateur de libération compatible selon PEP 44 . Dans votre cas, cela équivaudrait à:
package~=0.5.0
Par exemple, si les versions suivantes existent, il choisirait 0.5.9
:
0.5.0
0.5.9
0.6.0
Pour plus de précision, chaque paire est équivalente:
~= 0.5.0
>= 0.5.0, == 0.5.*
~= 0.5
>= 0.5, == 0.*