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.