Come aggiornare pip alla versione più recente?


51

Ho installato pip usando get-pip.pydopo che pip freezegenera sotto l'errore

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

Quindi ho controllato 1.7 è l'ultimo. Se ho seguito i passaggi seguenti e non si aggiorna ... Aiutami qui ...

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)

1
sudo -H PIP3 installare --upgrade pip
moldovean

Risposte:


54

Di solito eseguo solo i seguenti comandi per aggiornare sia pip2(= pipper impostazione predefinita) che pip3:

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

È necessario assicurarsi di aggiornare la versione (per Python 2 o 3), che si desidera reagire al comando pipsenza numero, per ultimo.

Si noti inoltre che ciò mantiene installate le vecchie versioni di pacchetti tramite apt-geto qualsiasi altro gestore di pacchetti, ma aggiunge nuove versioni che non hanno nulla a che fare con i pacchetti di sistema. I pippacchetti installati verranno preferiti, ma non è necessario rimuovere apt-getnemmeno quelli installati, poiché il gestore pacchetti non può sapere che nessuna pipversione è installata diversamente.


3
Perché è importante tornare a casa sudo -H?
Léo Léopold Hertz

11
@Masi Perché pipvuole scrivere i suoi file scaricati da qualche parte per memorizzarli nella cache. È implementato per inserirli in una sottocartella della home directory dell'utente corrente. Se lo stai eseguendo senza di -Hesso si lamenterà, perché rileva che la home directory attualmente impostata (utente normale) non corrisponde all'utente che esegue come (root). Se scrivesse i suoi file nella tua home directory, sarebbero di proprietà di root e non più accessibili a te come utente normale. Pertanto non memorizza nella cache i file in questo caso. Non è terribile omettere il -Hcome lo piprileva e ti avverte.
Byte Commander

1
Perché entrambi i comandi sovrascrivono il pipcomando? Quando aggiorno pip2non aggiorna il pip2comando, solo pip.
Yep_It's_Me

@Yep_It's_Me questo perché pipè relativo alla versione di Python che stai chiamando. ed è per questo che i suoi comandi sono pip2e pip3rispettivamente chiamano la versione appropriata di Python per aggiornare pip. Ha senso?
JayRizzo,

27

Penso che la

pip install --upgrade pip

il comando non funziona più correttamente. Il comando corretto dovrebbe essere:

  • per Python 3:

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

    python2 -m pip install --upgrade pip

Gg @ david-foerster
JayRizzo

Su Linux, basta usare pip install -U pip(vedi Aggiornamento pip )
Eido95

1
Ho avuto problemi durante l'aggiornamento di pip dalla radice (in un'immagine Docker) e questo ha funzionato come un fascino.
Cristian Ramon-Cortes,

Ha funzionato come un incantesimo su Linux Mint
HelloWorld il

5

Vai a questo sito Web https://pypi.python.org/pypi/pip

copia (o) scarica il link sorgente (termina in .tar.gz)

per 9.0.1 il link è https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9

procedura d'installazione

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

la versione deve essere modificata all'ultima versione e il collegamento può essere aggiornato con il collegamento dell'ultima versione

questo dovrebbe funzionare


questa è l'unica cosa che ha funzionato per me poiché tutto il resto ha bisogno di una connessione al server dalla shell, che di nuovo fallisce con lo stesso errore.
Alok Rajasukumaran,

1

pip install -U pip

Il più corto che conosco.


1

Penso che valga la pena menzionare che ciò che sto spiegando di seguito è se ti aspetti che pip punti a Python 2 e pip3 punti a Python 3. Il motivo per cui menziono questo è perché quando aggiorni pip3, assume anche il comando pip come bene. Questa è una convenzione un po 'strana perché di default python punta a 2.xe python3 punta a 3.x. Detto ciò...

Se vuoi avere le ultime versioni di python 2.x pip e python 3.x pip3 coesistono sulla stessa macchina (usando pip per 2.xe pip3 per 3.x), devi fare quanto segue:

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

Le altre risposte fornite da altri non menzionano che dopo aver eseguito sudo pip3 install pip --upgrade si finirà con il comando pip che installa i pacchetti nelle directory python 3.x anziché nelle directory python 2.x.

Una parte di me pensa che dovremmo lasciare pip dopo aver aggiornato pip3 (anche se pip -> pip3), ma c'è il pericolo che le persone abbiano già un'aspettativa che pip funzioni come Python - entrambi puntano su Python 2.x. In altre parole, le persone sono probabilmente addestrate ad usare pip / python per python 2.x proprio come sono addestrate ad usare pip3 / python3 per python 3.x.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.