¿Cómo actualizar pip a la última?

51

Instalé pip usando get-pip.pydespués de eso pip freezearroja el siguiente error

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
    req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /home/simon/.pip/pip.log

Así que verifiqué 1.7 es el último. Si seguí los pasos a continuación y no se está actualizando ... Ayúdame aquí ...

simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip
Downloading/unpacking pip
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
Raja Simon
fuente
1
sudo -H pip3 install --upgrade pip
moldovean

Respuestas:

54

Por lo general, solo ejecuto los siguientes comandos para actualizar tanto pip2(= pippor defecto) como pip3:

sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip

Debe asegurarse de actualizar la versión (para Python 2 o 3), que desea reaccionar en el comando pipsin número, por último.

También tenga en cuenta que esto mantiene las versiones empaquetadas antiguas instaladas a través de apt-getcualquier otro administrador de paquetes, pero agrega nuevas versiones que no tienen nada que ver con los paquetes del sistema. Se pippreferirán los paquetes instalados , pero tampoco debe eliminarlos apt-get, ya que el administrador de paquetes no puede saber que hay otra pipversión instalada.

Byte Commander
fuente
3
¿Por qué es importante establecerse en casa sudo -H?
Léo Léopold Hertz 준영
11
@Masi Porque pipquiere escribir sus archivos descargados en algún lugar para almacenarlos en caché. Se implementa para colocarlos en una subcarpeta del directorio de inicio del usuario actual. Si lo está ejecutando sin -Hél, se quejará, porque detecta que el directorio de inicio establecido actualmente (usuario normal) no coincide con el usuario que ejecuta como (root). Si escribiera sus archivos en su directorio de inicio, serían propiedad de root y no serían accesibles para usted como usuario normal. Por lo tanto, no almacena en caché los archivos en este caso. No es terrible omitir -Hcomo lo pipdetecta y te advierte.
Byte Commander
1
¿Por qué ambos comandos simplemente sobrescriben el pipcomando? Cuando actualizo pip2no actualiza el pip2comando, solo pip.
Sip_It's_Me
@ Yep_It's_Me esto se debe a que pipes relativo a qué versión de Python está llamando. y es por eso que sus comandos son pip2y pip3respectivamente llaman a la versión apropiada de python para actualizar pip. ¿Tiene sentido?
JayRizzo
27

Pienso que el

pip install --upgrade pip

El comando ya no funciona correctamente. El comando correcto debería ser:

  • para Python 3:

    python3 -m pip install --upgrade pip
  • para Python 2:

    python2 -m pip install --upgrade pip
Foad
fuente
Gg @ david-foerster
JayRizzo
En Linux, solo use pip install -U pip(vea
Pip de
1
Tuve problemas al actualizar pip desde la raíz (en una imagen de Docker) y esto funcionó de maravilla.
Cristian Ramon-Cortes
Funcionó de maravilla en Linux mint
HelloWorld
5

Vaya a este sitio web https://pypi.python.org/pypi/pip

copie (o) descargue el enlace de origen (termina en .tar.gz)

para 9.0.1 el enlace es https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9

procedimiento de instalación

wget //link goes here
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py install

la versión debe cambiarse a la última versión y el enlace se puede actualizar con el enlace de la última versión

Esto debería funcionar

an0nym0use
fuente
Esto es lo único que funcionó para mí, ya que todo lo demás necesita una conexión al servidor desde el shell, que nuevamente falla con el mismo error.
Alok Rajasukumaran
1

pip install -U pip

Lo más corto que sé.

prosti
fuente
1

Creo que vale la pena mencionar que lo que estoy explicando a continuación es si espera que pip apunte a Python 2 y pip3 apunte a Python 3. La razón por la que menciono esto es porque cuando actualiza pip3, también toma el comando pip como bien. Esta es una convención un tanto extraña porque, por defecto, python apunta a 2.xy python3 apunta a 3.x. Habiendo dicho eso...

Si desea tener las últimas versiones de python 2.x pip y python 3.x pip3 coexisten en la misma máquina (usando pip para 2.xy pip3 para 3.x), debe hacer lo siguiente:

sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2

Las otras respuestas proporcionadas por otros no mencionan que después de ejecutar sudo pip3 install pip --upgrade terminarás con el comando pip instalando paquetes en los directorios python 3.x en lugar de los directorios python 2.x.

Una parte de mí piensa que deberíamos dejar pip después de actualizar pip3 (incluso si pip -> pip3), pero existe el peligro de que la gente ya tenga la expectativa de que pip funcione como python, ambos apuntando a python 2.x. En otras palabras, las personas probablemente estén entrenadas para usar pip / python para python 2.x al igual que están entrenadas para usar pip3 / python3 para python 3.x.

Miguel
fuente
-1

Me enfrento al mismo error y lo resolví con los siguientes comandos.

sudo su root
apt-get purge -y python-pip
wget https://bootstrap.pypa.io/get-pip.py
python ./get-pip.py
apt-get install python-pip

ImportError: ningún módulo llamado packaging.version

Bhavesh Odedra
fuente
apt-get purge -y python-pipfuncionó para mí
Akira Yamamoto