Posso forzare pip a reinstallare la versione corrente?


507

Mi sono imbattuto in situazioni in cui una versione corrente di un pacchetto sembra non funzionare e richiede la reinstallazione. Ma pip install -Unon toccherà un pacchetto che è già aggiornato. Vedo come forzare una reinstallazione disinstallando prima (con pip uninstall) e quindi installando, ma esiste un modo per forzare semplicemente un "aggiornamento" a una versione nominalmente corrente in un solo passaggio?


per coloro che desiderano reinstallare da solo pip (se ha smesso di funzionare per qualche motivo;)), la risposta può essere trovata in questo SO q & a
nsof

Risposte:


745
pip install --upgrade --force-reinstall <package>

Durante l'aggiornamento, reinstallare tutti i pacchetti anche se sono già aggiornati.

pip install -I <package>
pip install --ignore-installed <package>

Ignora i pacchetti installati (reinstallazione invece).


1
Un modo per forzare una sovrascrittura quando si utilizza --target = flag? nessuno di questi ha funzionato per me. Ottengo il percorso di destinazione esiste già un errore.
Radtek,

@KeeganQuinn pensi che questo sia ciò che Karan intendeva con "Durante l'aggiornamento" ...? Suppongo di sì. Ma il tuo chiarimento sicuramente mi aiuta.
The Red Pea,

Cosa succede se desidero apportare una modifica alla zipline che è installata nel processo pip install pipeline-livee semplicemente ritirare la mia modifica nella zipline?
gseattle,

Incluso --upgradequando --force-reinstallviene utilizzato non dovrebbe essere necessario a partire dalla pip 10.0, FYI: github.com/pypa/pip/issues/1139
cjerdonek,

1
@mrgloom Il using cachedgiusto significa che utilizza i file di origine che erano memorizzati nella cache nell'ultima installazione. Per forzare il nuovo download, utilizzare la --no-cache-dirbandiera.
lcnittl,

181

Potresti voler avere tutte e tre le opzioni: --upgradee --force-reinstallgarantisce la reinstallazione, --no-depsevitando al contempo di reinstallare le dipendenze.

$ sudo pip install --upgrade --no-deps --force-reinstall <packagename>

Altrimenti potresti riscontrare il problema che pip inizia a ricompilare Numpy o altri pacchetti di grandi dimensioni.


1
Questo funziona anche per installazioni offline, mentre la risposta esclusa no.
orodbhen,

4
Questa è una soluzione migliore per i pacchetti con un gran numero di dipendenze che non necessitano di essere reinstallate.
Assil Ksiksi,

1
sudoera cruciale nel mio caso.
mrgloom,

1
Perché abbiamo bisogno --upgradequando usiamo --force-reinstall?
mrgloom,

@ FinnÅrupNielsen perché dovrebbe aggiornare la versione attuale? come ho capito qui vogliamo reinstallare il pacchetto. Cosa succede se <package-name>==<package-version>si utilizza il formato?
mrgloom,

33

Se desideri reinstallare i pacchetti specificati in un file requisito.txt, senza eseguire l'aggiornamento, ti basta reinstallare le versioni specifiche specificate nel file requisito.txt:

pip install -r requirements.txt --ignore-installed

29
--force-reinstall

non sembra forzare la reinstallazione usando python2.7 con pip-1.5

Ho dovuto usare

--no-deps --ignore-installed

20
È necessario specificare --upgradeoltre a --force-reinstall, o non avrà alcun effetto.
Keegan Quinn,

6

Se hai un file di testo con molti pacchetti devi aggiungere il flag -r

pip install --upgrade --no-deps --force-reinstall -r requirements.txt

5

Nel caso in cui sia necessario forzare la reinstallazione del pip stesso, è possibile eseguire:

python -m pip install --upgrade --force-reinstall pip

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.