¿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?


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).


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.


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

29
--force-reinstall

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

He tenido que usar

--no-deps --ignore-installed

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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.