¿Cómo actualizo pip desde mi entorno virtual?

523

Puedo actualizar paquetes gestionados por pip, pero ¿cómo actualizo pip? Según pip --version, actualmente tengo instalado pip 1.1 en mi virtualenv y quiero actualizar a la última versión.

¿Cuál es el comando para eso? ¿Necesito usar distribuir o hay un comando nativo pip o virtualenv? Ya lo he intentado pip updatey pip update pipsin éxito.

zakdances
fuente
40
pip install --upgrade pip? Es solo otro paquete de PyPI.
Cairnarvon
1
Ese comando me da "/ Users / zak / MyProject / venv / bin / pip install: error: no existe esa opción: --update"
zakdances
44
Es --upgrade, no --update, lo siento. Edité mi publicación de inmediato, pero debes haberla visto exactamente en el momento equivocado.
Cairnarvon
2
@Cairnarvon es el comando diferente para pip3? Estoy intentando pip3 pero me dice que no puede encontrarlo y luego se queja de NUEVO porque no está actualizado ... ¡cuando ni siquiera me deja actualizarlo / actualizarlo!
Charlie Parker

Respuestas:

930

pipes solo un paquete PyPI como cualquier otro; podría usarlo para actualizarse de la misma manera que actualizaría cualquier paquete:

pip install --upgrade pip

En Windows, el comando recomendado es:

python -m pip install --upgrade pip
Cairnarvon
fuente
53
En Windows tuve un problema de permisos al intentar actualizar pip usando pip. En su lugar, utilicé easy_install para actualizar:easy_install pip
bsa
8
Cuando hice este pip parecía actualizarse (1.1 -> 1.4), pero cuando hago "pip --version" todavía muestra la versión anterior 1.1. Intenté desactivar y activar virtualenv nuevamente, pero aún muestra la versión anterior.
Zitrax
40
En Windows, probablemente sea mejor usar un comando como ese: python -m pip install --upgrade pippara evitar ejecutar pip.exe desde el directorio de scripts.
bialix
@Zitrax ¿resolvió este problema? Me enfrento al mismo problema.
Mohammad ali baghershemirani
@Mohammadalibaghershemirani lo siento, es hace un tiempo, no puedo recordar.
Zitrax
58

El método más seguro es ejecutar pip a través de un módulo python :

python -m pip install -U pip

En Windows parece haber un problema con los archivos binarios que intentan reemplazarse a sí mismos, este método evita esa limitación.

Janusz Skonieczny
fuente
99
Esto es ahora lo que recomienda pip, si detecta una versión más nueva de sí mismo.
Tephyr
1
Creo que la razón por la que esto es más seguro es porque en algunos sistemas operativos (Windows), solo ejecutar pip directamente puede crear un bloqueo de archivo en el ejecutable, lo que evitaría actualizarlo. Al llamar a Python y decirle que cargue el módulo directamente, evita acceder al ejecutable.
jpmc26
Debe ejecutar el símbolo del sistema en modo administrador para que esto funcione. Intenté varias otras sugerencias y nada funcionó hasta que reinicié la ventana del símbolo del sistema en modo administrador, luego este comando funcionó perfectamente.
DaveN59
42

En mi caso, mi versión pip estaba rota, por lo que la actualización por sí sola no funcionaría.

Reparar:

(inside virtualenv):easy_install -U pip
jmoz
fuente
1
También fue mi caso. Probé todos los demás métodos, pero solo este me ayuda. Gracias !
levif
Lo mismo aquí, esa es la única forma que funciona para mí en Debian. El uso de python o pip para actualizar pip desde dentro de virtualenv fallará porque se negó a desinstalar pip existente que se encuentra fuera del venv.
user3748764
Ejecutar esto me mostró muchas cosas, incluidas las Download error on https://pypi.python.org/simple/pip/: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) -- Some packages may not be found!que no se mostraban al ejecutar --upgrade. Y es probable que sea la razón por la que falla la instalación de cualquier paquete de pip y por qué la actualización de pip a través de pip también falla, SSL parece estar roto.
Vadorequest
9

Probé todas estas soluciones mencionadas anteriormente en Debian Jessie. No funcionan, porque solo toma la última versión compilada por el administrador de paquetes de Debian, que es 1.5.6, que equivale a la versión 6.0.x. Algunos paquetes que usan pip como requisitos previos no funcionarán como resultado, como spaCy (que necesita la opción --no-cache-dir para funcionar correctamente).

Entonces, la mejor manera de resolver estos problemas es ejecutar get-pip.py descargado usando wget, desde el sitio web o usando curl de la siguiente manera:

 wget https://bootstrap.pypa.io/get-pip.py -O ./get-pip.py
 python ./get-pip.py
 python3 ./get-pip.py

Esto instalará la versión actual que en el momento de escribir esta solución es 9.0.1, que está más allá de lo que proporciona Debian.

 $ pip --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python2.7/dist-packages (python 2.7)
 $ pip3 --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python3.4/site-packages (python 3.4)
Eamonn Kenny
fuente
2
útil para cuando pip install --upgrade pipfalló
Aneuway
Si pudiera votar esta respuesta varias veces, lo haría. Esto simplemente resolvió un problema en el que pip 9.x fallaba con un error SSL al actualizar a pip 10.x. Ver stackoverflow.com/questions/25981703/…
Keith John Hutchison
Bueno, si lo has votado incluso una vez, seré feliz. Mis respuestas generalmente se encuentran en una o dos horas de caza y años de experiencia. ¿No puedo decir lo mismo de mis preguntas? ¡La gente puede ser muy mala! :)
Eamonn Kenny
4

Actualizar pip usando ' pip install --upgrade pip ' no siempre funciona debido al temido problema del certificado: Hubo un problema al confirmar el certificado SSL: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] versión del protocolo de alerta tlsv1

Me gusta usar el comando de una línea para envs virtuales:

curl https://bootstrap.pypa.io/get-pip.py | python -

O si desea instalarlo de ancho, necesitará

curl https://bootstrap.pypa.io/get-pip.py | sudo python -

puede dar curl a -s flag si desea silenciar la salida cuando se ejecuta en un script de automatización.

rublo
fuente
1

En mi caso, esto funcionó desde la línea de comandos del terminal en Debian Stable

python3 -m pip install --upgrade pip
Prabhakaran KC
fuente
1

Para que esto funcione para mí, tuve que profundizar en el directorio de Python utilizando el símbolo del sistema de Python (en WIN10 desde VS CODE). En mi caso, estaba en mi directorio "AppData \ Local \ Programs \ Python \ python35-32". Desde allí, ejecuté el comando ...

python -m pip install --upgrade pip

Esto funcionó y estoy listo para ir.

Sean
fuente
1

Abra el símbolo del sistema con permisos de administrador y repita el comando:

python -m pip install --upgrade pip
MRamzan
fuente
44
¿No es esto lo mismo que algunas de las respuestas existentes?
hkchengrex
Es pero, estaba teniendo el problema y se resolvió cuando ejecuté CMD con privilegios de administrador.
MRamzan
1

La versión 10 de pip tiene un problema. Se manifestará como el error:

ubuntu@mymachine-:~/mydir$ sudo pip install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

La solución es estar en el venv que desea actualizar y luego ejecutar:

sudo myvenv/bin/pip install --upgrade pip

en lugar de solo

sudo pip install --upgrade pip
Calaf
fuente
1

En caso de que esté usando venv, cualquier actualización para la instalación de pip dará como resultado la actualización del pip del sistema en lugar del pip de venv. También debe actualizar los paquetes de arranque de pip.

  python3 -m pip install --upgrade pip setuptools wheel
dre-hh
fuente
Hubo algún problema con Python Mailist o Pepa. Desafortunadamente, todas las partes rechazaron la responsabilidad como not my motorollerproblema
dre-hh
0

Había instalado Python en C: \ Python \ Python36, así que fui al símbolo del sistema de Windows y escribí "cd C: \ Python \ Python36 para llegar al directorio correcto. Luego ingresé" python -m install --upgrade pip "all ¡bueno!

Walt
fuente
0

En mi computadora portátil con Windows 7, la forma correcta de instalar la última versión de pip es:

python.exe -m pip install --upgrade pip
MiloshB
fuente
0

Programa de línea única de Python
La mejor manera que he encontrado es escribir un programa de línea única que descargue y ejecute el script oficial get-pip. Vea a continuación el código.

Los documentos oficiales recomiendan usar curl para descargar el script get-pip, pero como trabajo en Windows y no tengo instalado curl, prefiero usar Python para descargar y ejecutar el script.

Aquí está el programa de una sola línea que se puede ejecutar a través de la línea de comando usando Python 3:

python -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

Esta línea obtiene el script oficial "get-pip.py" según las notas de instalación y ejecuta el script con el comando "exec".

Para Python2, reemplazaría "urllib.request" con "urllib2":

python -c "import urllib2; exec(urllib2.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

Precauciones
Vale la pena señalar que ejecutar cualquier script de Python a ciegas es inherentemente peligroso. Por este motivo, las instrucciones oficiales recomiendan descargar el script e inspeccionarlo antes de ejecutarlo.

Dicho esto, muchas personas no inspeccionan el código y simplemente lo ejecutan. Este programa de una línea lo hace más fácil.

Puño de la furia
fuente
0

Tuve un problema similar en una frambuesa pi.

El problema era que http requiere SSL y, por lo tanto, necesitaba forzarlo a usar https para evitar este requisito.

sudo pip install --upgrade pip --index-url=https://pypi.python.org/simple

o

sudo pip-3.2 --upgrade pip --index-url=https://pypi.python.org/simple/
usuario391339
fuente
0

Estaba en una situación similar y quería actualizar el paquete urllib3. Lo que funcionó para mí fue:

pip3 install --upgrade --force-reinstall --ignore-installed urllib3==1.25.3
Avik Aggarwal
fuente
-2

Muy simple. Simplemente descargue pip desde https://bootstrap.pypa.io/get-pip.py . Guarde el archivo en algún forlder o dekstop. Guardé el archivo en mi unidad D. Luego, desde el símbolo del sistema, navegue a la carpeta donde descargó pip. Luego escribe allí

python -get-pip.py

Captura de pantalla de instalación de Pip

Prasad K
fuente