2013-06-20 11 views
8

La mia domanda è molto simile alla domanda this. Ma differisce in un modo che se sto installando qualche pacchetto voglio solo disabilitare l'aggiornamento per una particolare dipendenza non per tutte le dipendenze. So che c'è una bandiera --no-deps ma escluderà tutte le dipendenze piuttosto voglio solo escluderne una.pip: pacchetto di aggiornamento senza aggiornare particolare dipendenza

Ecco uno scenario:

Ecco django-rosetta dipendenze in ultima build:

install_requires=[ 
    'six >=1.2.0', 
    'Django >= 1.3' 
] 

Ora ho voglio aggiornare Rosetta pip install -U django-rosetta . Ma ha provato a scaricare e installare Django 1.5 perché nella dipendenza da rosetta è richiesto Django >= 1.3 (e io non voglio farlo perché Django 1.4 è già installato). Voglio solo aggiornare il pacchetto six se ce n'è.

--no-deps flag non funzionerà in quanto esclude anche il pacchetto six. Inoltre non sto usando l'ambiente virtuale. Qualche suggerimento per favore?

+0

Nell'esempio Pip provato ad installare 'Django 1.5', questo perché 'Django 1.4' non è stato installato usando pip? –

risposta

18

Questo funziona e ti permette di essere più preciso:

pip install -U django-rosetta Django==1.4 
+1

Effettivamente lo fa. – slumtrimpet

7

Creare un file requisito requirement.txt contenente:

Django==1.4 

poi

pip install -U django-rosetta -r requirement.txt 
+0

Ma se seguo questo approccio aggiornerei il resto dei pacchetti (tranne Django) che sono nel file requirements.txt. –

+0

Beh, forse non ho capito la tua domanda, ma stavi chiedendo un modo per prevenire l'aggiornamento di alcuni pacchetti specifici (Django) mentre aggiornavo tutto il resto ... quello che sto dicendo è che il file dei requisiti può essere usato per bloccare quelli pacchetti specifici da aggiornare e consentire ai pip di aggiornare gli altri. – Guillaume

+0

Appena testato e funzionerà con il file 'requirements.txt' se si mantiene il numero di versione anche per ogni pacchetto. –

Problemi correlati