Come posso aggiornare pip stesso dal mio ambiente virtuale?


523

Sono in grado di aggiornare i pacchetti gestiti da pip, ma come posso aggiornare pip stesso? Secondo pip --version, attualmente ho installato pip 1.1 nel mio virtualenv e voglio aggiornare all'ultima versione.

Qual è il comando per quello? Devo usare distribut o c'è un comando pip o virtualenv nativo? Ci ho già provato pip updatee pip update pipsenza successo.


40
pip install --upgrade pip? È solo un altro pacchetto PyPI.
Cairnarvon,

1
Questo comando mi dà "/ Users / zak / MyProject / venv / bin / pip install: errore: nessuna opzione del genere: --update"
zakdances

4
E ' --upgrade, non è --update, mi dispiace. Ho modificato immediatamente il mio post, ma devi averlo visto esattamente nel momento sbagliato.
Cairnarvon,

2
@Cairnarvon è diverso il comando per pip3? Sto provando a pip3 ma mi dice solo che non riesce a trovarlo e poi continua a lamentarsi ANCORA che non è aggiornato ... quando non mi permette nemmeno di aggiornarlo / aggiornarlo!
Charlie Parker,

Risposte:


929

pipè solo un pacchetto PyPI come un altro; potresti usarlo per aggiornarsi nello stesso modo in cui aggiorneresti qualsiasi pacchetto:

pip install --upgrade pip

Su Windows il comando raccomandato è:

python -m pip install --upgrade pip

53
Sotto Windows ho avuto un problema di autorizzazioni nel tentativo di aggiornare pip usando pip. Invece ho usato easy_install per aggiornare:easy_install pip
bsa

8
Quando ho fatto questo pip sembrava aggiornare (1.1 -> 1.4), ma quando faccio "pip --version" mostra ancora la vecchia versione 1.1. Ho provato a disattivare e attivare di nuovo virtualenv ma mostra ancora la versione precedente.
Zitrax,

40
Su Windows probabilmente è meglio usare questo comando: python -m pip install --upgrade pipper evitare di eseguire pip.exe dalla directory degli script.
Bialix,

@Zitrax hai risolto questo problema? Sono di fronte allo stesso problema.
Mohammad ali baghershemirani,

@Mohammadalibaghershemirani mi dispiace che sia passato un po 'di tempo - non ricordo.
Zitrax,

58

Il metodo più sicuro è eseguire pip tramite un modulo Python :

python -m pip install -U pip

Su Windows sembra esserci un problema con i binari che provano a sostituirsi, questo metodo aggira quella limitazione.


9
Questo è ora ciò che pip stesso consiglia, se rileva una versione più recente di se stesso.
tephyr,

1
Credo che il motivo per cui questo sia più sicuro sia perché su alcuni sistemi operativi (Windows), solo l'esecuzione diretta di pip può creare un blocco file sull'eseguibile, che impedirebbe di aggiornarlo. Chiamando Python e dicendogli di caricare direttamente il modulo, si evita di accedere all'eseguibile.
jpmc26,

È necessario eseguire il prompt dei comandi in modalità amministratore per farlo funzionare. Ho provato diversi altri suggerimenti e nulla ha funzionato fino a quando non ho riavviato la finestra del prompt dei comandi in modalità amministratore, quindi questo comando ha funzionato perfettamente.
DaveN59,

42

Nel mio caso la mia versione di pip era rotta, quindi l'aggiornamento da solo non avrebbe funzionato.

fix:

(inside virtualenv):easy_install -U pip

1
È stato anche il mio caso. Ho provato tutti gli altri metodi, ma solo questo mi aiuta. Grazie !
levif,

Lo stesso qui, è l'unico modo che funziona per me su Debian. L'uso di python o pip per aggiornare pip dall'interno di virtualenv fallirebbe perché si rifiutava di disinstallare pip esistente seduto fuori da venv.
user3748764,

L'esecuzione di questo mi ha mostrato molte cose tra 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!cui quelle non visualizzate durante l'esecuzione di --upgrade. Ed è probabilmente il motivo per cui l'installazione di qualsiasi pacchetto pip non riesce e perché anche l'aggiornamento di pip tramite pip non riesce, SSL sembra interrotto.
Vadorequest,

9

Ho provato tutte queste soluzioni sopra menzionate sotto Debian Jessie. Non funzionano, perché richiede solo l'ultima versione compilata dal gestore pacchetti debian che è 1.5.6 che equivale alla versione 6.0.x. Alcuni pacchetti che utilizzano pip come prerequisiti non funzioneranno come risultato, come spaCy (che necessita dell'opzione --no-cache-dir per funzionare correttamente).

Quindi il modo migliore per risolvere questi problemi è eseguire get-pip.py scaricato usando wget, dal sito Web o usando l'arricciatura come segue:

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

Questo installerà la versione corrente che al momento della stesura di questa soluzione è 9.0.1 che è molto al di là di ciò che fornisce 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)

2
utile per quando pip install --upgrade pipfallito
Aneuway

Se potessi votare questa risposta alcune volte lo farei. Ciò ha appena risolto un problema in cui pip 9.x non riusciva con un errore SSL aggiornando a pip 10.x. Vedi stackoverflow.com/questions/25981703/…
Keith John Hutchison,

Bene, se lo hai votato anche una volta, sarò felice. Le mie risposte di solito si trovano da un'ora o due di caccia e anni di esperienza. Non posso dire lo stesso per le mie domande? Le persone possono essere davvero cattive! :)
Eamonn Kenny,

4

L'aggiornamento di pip con ' pip install --upup pip ' non funziona sempre a causa del temuto problema cert: si è verificato un problema durante la conferma del certificato ssl: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 versione protocollo di avviso

Mi piace usare il comando a una riga per gli ambienti virtuali:

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

O se si desidera installarlo in tutta la scatola, sarà necessario

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

puoi dare il ricciolo a -s flag se vuoi silenziare l'output quando esegui uno script di automazione.


1

Nel mio caso questo ha funzionato dalla riga di comando del terminale in Debian Stable

python3 -m pip install --upgrade pip

1

Per farlo funzionare per me ho dovuto eseguire il drill-down nella directory Python usando il prompt dei comandi di Python (su WIN10 da VS CODE). Nel mio caso era nella mia directory "AppData \ Local \ Programmi \ Python \ python35-32". Da lì ora ho eseguito il comando ...

python -m pip install --upgrade pip

Questo ha funzionato e sono a posto.


1

Apri il prompt dei comandi con autorizzazioni di amministratore e ripeti il ​​comando:

python -m pip install --upgrade pip

4
Non è lo stesso di alcune delle risposte esistenti?
hkchengrex,

Lo è, ma stavo riscontrando il problema e si è risolto quando ho eseguito CMD con privilegi di amministratore.
MRamzan,

1

pip versione 10 ha un problema. Si manifesterà come errore:

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 soluzione è quella di trovarsi nella versione che si desidera aggiornare e quindi eseguire:

sudo myvenv/bin/pip install --upgrade pip

piuttosto che solo

sudo pip install --upgrade pip

1

Nel caso in cui si utilizzi venv, qualsiasi aggiornamento all'installazione del pip comporterà l'aggiornamento del pip del sistema anziché del pip venv. È necessario aggiornare anche i pacchetti di bootstrap del pip.

  python3 -m pip install --upgrade pip setuptools wheel

si è verificato un problema con Python Mailist o Pepa. Purtroppo tutte le parti hanno respinto la responsabilità come not my motorollerproblema
dre-hh

0

Avevo installato Python in C: \ Python \ Python36, quindi sono andato al prompt dei comandi di Windows e ho digitato "cd C: \ Python \ Python36 per accedere alla directory corretta. Quindi ho inserito" python -m install --upgrade pip "all bene!


0

Sul mio computer portatile con Windows 7 il modo giusto per installare l'ultima versione di pip è:

python.exe -m pip install --upgrade pip

0

Programma Python a linea singola
Il modo migliore che ho trovato è scrivere un programma a linea singola che scarichi ed esegua lo script get-pip ufficiale. Vedi sotto per il codice.

I documenti ufficiali raccomandano di usare curl per scaricare lo script get-pip, ma poiché lavoro su Windows e non ho installato curl, preferisco usare Python stesso per scaricare ed eseguire lo script.

Ecco il programma a linea singola che può essere eseguito tramite la riga di comando utilizzando Python 3:

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

Questa riga ottiene lo script "get-pip.py" ufficiale secondo le note di installazione ed esegue lo script con il comando "exec".

Per Python2 sostituiresti "urllib.request" con "urllib2":

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

Precauzioni
Vale la pena notare che eseguire qualsiasi script Python alla cieca è intrinsecamente pericoloso. Per questo motivo, le istruzioni ufficiali raccomandano di scaricare lo script e di controllarlo prima di eseguirlo.

Detto questo, molte persone in realtà non controllano il codice e lo eseguono. Questo programma su una riga lo rende più semplice.


0

Ho avuto un problema simile su un lampone pi.

Il problema era che http richiede SSL e quindi avevo bisogno di forzarlo a usare https per aggirare questo 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/

0

Ero in una situazione simile e volevo aggiornare il pacchetto urllib3. Ciò che ha funzionato per me è stato:

pip3 install --upgrade --force-reinstall --ignore-installed urllib3==1.25.3

-2

Molto semplice. Basta scaricare pip da https://bootstrap.pypa.io/get-pip.py . Salvare il file in alcuni forlder o dekstop. Ho salvato il file nel mio disco D. Quindi, dal prompt dei comandi, vai alla cartella in cui hai scaricato pip. Quindi digitare lì

python -get-pip.py

Schermata di installazione di Pip

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.