2012-01-09 12 views
129

Mi chiedo se c'è un modo per dire a pip, in particolare in un file dei requisiti, di installare un pacchetto con una versione minima (pip install package>=0.2) e una versione massima che non dovrebbe mai essere installata (apice teorico: pip install package<0.3).Come installare un pacchetto di pip con il range di versione min e max?

Chiedo perché sto usando una libreria di terze parti in fase di sviluppo. Mi piacerebbe che il mio file dei requisiti di pip specificasse che dovrebbe sempre installare la versione secondaria più recente del ramo 0.5.x, ma non voglio che pip provi mai ad installare le versioni principali più recenti (come 0.6.x) da l'API è diversa. Questo è importante perché anche se il ramo 0.6.x è disponibile, gli sviluppatori rilasciano ancora patch e correzioni di errori sul ramo 0.5.x, quindi non voglio usare una riga statica package=0.5.9 nel mio file dei requisiti.

C'è un modo per farlo?

risposta

169

si può fare:

$ pip install "package>=0.2,<0.3" 

E pip cercherà la migliore corrispondenza, assumendo che la versione è almeno 0,2, e meno di 0,3.

Questo vale anche per pip requirements files. Vedi i dettagli completi sugli specificatori di versione in PEP 440.

+0

È "valido anche il pacchetto> = 0,2, <0,3"? –

+0

Sì, è valido. Vedere la mia risposta aggiornata e trovare ulteriori informazioni su ciò che è valido e cosa no. –

+0

Collegamento non valido. Documentazione ufficiale [qui] (http://www.pip-installer.org/en/latest/logic.html#requirements-file-format). – tjameson

7

è anche possibile utilizzare:

pip install package==0.5.* 

che è più coerente e di facile lettura.

+1

Questo è un modo molto migliore per gestire IMO di 'requirements.txt'. L'uso di 'package == 1. *' invece di 'package> = 1.2' impedisce a pip di installare la versione 2+ principale per il pacchetto, il che è auspicabile dal momento che le principali modifiche alla versione sono spesso incompatibili con le versioni precedenti. –

Problemi correlati