Comment pip installer un paquet avec min et max de la plage version?
Je me demandais si il y a moyen de dire pip, plus précisément dans un fichier, pour installer un paquet avec une version minimale (pip install package>=0.2
) et une version maximale qui ne doit jamais être installé (théorique api: pip install package<0.3
).
Je demande parce que je suis à l'aide d'un tiers de la bibliothèque qui est en développement actif. J'aimerais que mon pip exigences de fichier pour spécifier qu'il faut toujours installer la dernière version mineure de la 0.5.x branche, mais je ne veux pas de ce programme de jamais essayez d'installer les nouvelles versions principales (comme 0.6.x) depuis l'API est différent. Ceci est important parce que même si la 0.6.x branche est disponible, les développeurs sont encore en libérant des correctifs et des correctifs de bogues à la 0.5.x branche, donc je ne veux pas utiliser un statique package==0.5.9
ligne dans ma exigences de fichier.
Est-il un moyen de le faire?
Vous devez vous connecter pour publier un commentaire.
Que vous pouvez faire:
Et
pip
va chercher le meilleur match, en supposant que la version est au moins de 0,2, et à moins de 0,3.Cela s'applique également à pip les exigences de fichiers. Voir tous les détails sur la version spécificateurs de PEP 440.
"package>=0.2,<=0.3"
ne fait pas beaucoup de sens: quand souhaitez-vous être d'accord avec les deux 0,2 et 0.3.0, mais pas avec n'importe quel de 0,3 s de correction de versions? Je pense que"package>=0.2,<0.3"
est un bien meilleur exemple, parce qu'elle reflète la commune de la cas de le dire: "donnez-moi la dernière version de correction de l'actuelle version mineure, mais ne pas mettre à jour automatiquement de moi à la prochaine version mineure, parce que je voudrais le faire explicitement, en s'assurant qu'il n'y a pas de changements fonctionnels affectant moi."~=0.2
est (à mon humble avis) une meilleure solution que celle-ci.vous pouvez également utiliser:
qui est plus logique et facile à lire.
requirements.txt
de l'OMI. À l'aide depackage==1.*
au lieu depackage>=1.2
empêche pip de l'installation de la version majeure 2+ pour le package, ce qui est souhaitable étant donné que les principaux changements de version sont souvent incompatibles.Une élégante méthode serait d'utiliser la
~=
version compatible avec opérateur selon PEP 440. Dans votre cas, cela reviendrait à:Par exemple, si les versions suivantes existent, il serait choisir
0.5.9
:0.5.0
0.5.9
0.6.0
Pour plus de précisions, chaque paire est équivalent:
2.2
et un avenir prévu2.2.1
, sera~=2.2.*
match2.2
bien que n'étant pas un tertiaire nombre?~=2.2.0
dans ce cas(*
opérateur ne fonctionnera pas si vous utilisez~=
).2.2
et2.2.0
(et2.2.0.0
, et ainsi de suite) sont traitées en interne comme même chose quand il s'agit de l'installation de paquets.