¿Cómo actualizo el propio pip desde mi entorno virtual?


Soy capaz de actualizar paquetes administrados por pip, pero ¿cómo actualizo el propio pip? De acuerdo con pip --version, actualmente tengo pip 1.1 instalado en mi virtualenv y quiero actualizar a la última versión.

¿Cuál es el comando para eso? ¿Necesito usar distribute o hay un pip nativo o un comando virtualenv? Ya he intentado pip update y pip update pip sin éxito.

Author: the Tin Man, 2013-03-05

12 answers

pip es solo un paquete PyPI como cualquier otro; podría usarlo para actualizarse a sí mismo 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
 685
Author: Cairnarvon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-07 20:09:35

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 binarios que intentan reemplazarse a sí mismos, este método funciona alrededor de esa limitación.

 43
Author: Janusz Skonieczny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-01 19:21:18

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

Arreglo:

(inside virtualenv):easy_install -U pip
 24
Author: jmoz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-28 17:31:53

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

Así que la mejor manera real de resolver estos problemas es ejecutar get-pip.py descargado usando wget, desde el sitio web o usando el rizo como sigue:

 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 es mucho más allá de lo que Debian proporciona.

 $ 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)
 9
Author: Eamonn Kenny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-02 15:25:42

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

python3 -m pip install --upgrade pip
 1
Author: Prabhakaran KC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-05 16:00:24

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

python -m pip install --upgrade pip

Esto funcionó y estoy listo para irme.

 1
Author: Sean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-14 13:44:20

Abra el símbolo del sistema con Permisos de Administrador y repita el comando:

python -m pip install --upgrade pip
 1
Author: user9411376,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-19 01:02:20

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. A continuación, entró en el "python-m install upgrade upgrade pip" todo bien!

 0
Author: Walt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-25 18:41:24

En mi laptop con Windows 7 la forma correcta de instalar la última versión de pip es:

python.exe -m pip install --upgrade pip
 0
Author: MiloshB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-08 00:01:02

Muy Simple. Solo tienes que descargar 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.A continuación, desde el símbolo del sistema, vaya a la carpeta donde ha descargado pip. Entonces escriba allí

python -get-pip.py

Captura de pantalla de instalación de Pip

 0
Author: Prasad K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-14 04:33:51

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
 0
Author: Calaf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-05 00:23:49

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

Los documentos oficiales recomiendan usar curl para descargar el script get-pip, pero como trabajo en Windows y no tengo curl instalado 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 comandos 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 oficial "get-pip.py" script según las notas de instalación y ejecuta el script con el comando "exec".

Para Python2 reemplazarías "urllib.solicitar " 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 python ciegamente es inherentemente peligroso. Por esta razón, las instrucciones oficiales recomiendan descargar el script e inspeccionarlo antes de ejecutarlo.

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

 0
Author: FistOfFury,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-02 15:31:04