¿Puedo forzar a pip a reinstalar la versión actual?

507

Me he encontrado con situaciones en las que una versión actual de un paquete parece no funcionar y requiere reinstalación. Pero pip install -Uno tocará un paquete que ya esté actualizado. Veo cómo forzar una reinstalación primero desinstalando (con pip uninstall) y luego instalando, pero ¿hay alguna manera de forzar simplemente una "actualización" a una versión nominalmente actual en un solo paso?

orome
fuente
para aquellos que buscan reinstalar pip it self (si dejó de funcionar por alguna razón;)), la respuesta se puede encontrar en este SO q & a
ns del

Respuestas:

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

Al actualizar, reinstale todos los paquetes, incluso si ya están actualizados.

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

Ignora los paquetes instalados (reinstalando en su lugar).

KGo
fuente
1
¿Alguna forma de forzar una sobrescritura cuando se usa --target = flag? ninguno de estos funcionó para mí. Me sale la ruta de destino ya existe error.
radtek
@KeeganQuinn, ¿crees que eso es lo que Karan quiso decir con "Al actualizar" ...? Supongo que sí. Pero tu aclaración ciertamente me ayuda.
The Red Pea
¿Qué sucede si deseo hacer un cambio en zipline que se instala en el proceso pip install pipeline-livey simplemente recoger mi cambio en zipline?
Gseattle
Incluyendo --upgradecuándo --force-reinstallse está utilizando no debería ser necesario a partir del pip 10.0, para su información: github.com/pypa/pip/issues/1139
cjerdonek
1
@mrgloom Just using cachedsignifica que utiliza archivos de origen que se almacenaron en caché en la última instalación. Para forzar la descarga, use la --no-cache-dirbandera.
lcnittl
181

Es posible que desee tener las tres opciones: --upgradey --force-reinstallasegura la reinstalación, mientras --no-depsevita reinstalar dependencias.

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

De lo contrario, podría encontrarse con el problema de que pip comienza a recompilar Numpy u otros paquetes grandes.

Finn Årup Nielsen
fuente
1
Esto también funciona para instalaciones sin conexión, mientras que la respuesta exceptuada no.
orodbhen
44
Esta es una mejor solución para paquetes con una gran cantidad de dependencias que no necesitan reinstalarse.
Assil Ksiksi
1
sudoFue crucial en mi caso.
mrgloom
1
¿Por qué necesitamos --upgradecuando usamos --force-reinstall?
mrgloom
@ FinnÅrupNielsen ¿por qué debería actualizar la versión actual? Según tengo entendido aquí, queremos reinstalar el paquete. ¿Qué pasa si <package-name>==<package-version>se usa el formato?
mrgloom
33

Si desea reinstalar paquetes especificados en un archivo require.txt, sin actualizar, simplemente reinstale las versiones específicas especificadas en el archivo require.txt:

pip install -r requirements.txt --ignore-installed
Davy
fuente
29
--force-reinstall

no parece forzar la reinstalación usando python2.7 con pip-1.5

He tenido que usar

--no-deps --ignore-installed
anemes
fuente
20
Debe especificar --upgradeademás --force-reinstallo no tendrá ningún efecto.
Keegan Quinn
6

Si tiene un archivo de texto con muchos paquetes, debe agregar el indicador -r

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

En el caso de que necesite forzar la reinstalación de pip , puede hacer lo siguiente:

python -m pip install --upgrade --force-reinstall pip
Jorge Cribb
fuente