Come installare l'ultima versione di pip quando ho già installato quello fornito da Ubuntu?


18

In Ubuntu 16.04 quando lo fai:

pip install --upgrade pip

ottieni:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Giusto. Adesso prova

pip install --upgrade pip

e ottieni:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Quindi, come ottenere effettivamente pip 8.1.2?


Funziona sudo -H pip install --upgrade pip?
edwinksl,

@edwinksl: fornisce gli stessi risultati degli altri comandi.
user2413

Sembra strano dal momento che ha funzionato per me. Probabilmente è necessario presentare una segnalazione di bug.
edwinksl,

@edwinksl: grazie. Aspetterò ancora un paio di giorni e lo farò>
user2413

1
@edwinksl Ha appena aperto un problema nel caso in cui qualcuno volesse rintracciarlo.
sethmlarson,

Risposte:


13

Non è una buona idea aggiornare il sistema Python a meno che tu non stia effettivamente lavorando su codice Ubuntu e abbia un motivo specifico per farlo. Esistono molte dipendenze di sistema che è possibile interrompere aggiornando con pip anziché utilizzare le librerie python nel repository APT.

Se stai sviluppando applicazioni Python e devi cambiare le versioni delle librerie, allora dovresti usare le opzioni --user per eseguire il pip o creare un virtualenv per memorizzare le versioni degli utenti delle librerie.

Entrambi questi metodi ricadranno con grazia sull'uso delle librerie di sistema se non hanno le proprie copie, virtualenv ha più opzioni su come controllare quel feedback.

pip con --user

Questo è facile come aggiungere semplicemente --user alla fine di tutti i tuoi comandi pip, questo metterà le tue librerie python in ~ / .local / lib / pythonX.X (dove XX è il tuo numero di versione di Python), verranno visualizzate perché qui prima fai solo attenzione a farlo per root se devi eseguire via sudo in quanto potrebbe influire sul sistema Python.

virtualenv

Funziona in modo simile a quello sopra ma è meno legato a un utente specifico, quindi non ha la limitazione sudo, puoi anche clonare un virtualenv e aggiornarlo per testare le modifiche che ti consentono di ripristinare se fa schifo. http://docs.python-guide.org/en/latest/dev/virtualenvs/


1
Volete davvero fare un'installazione alternativa di Python se volete 2.7, quindi non interferirete con il sistema operativo Python. Da lì, è necessario aggiornare pip nell'installazione alt prima del venv. Volete anche --no-cache-dir per impedire l'installazione della versione cache.
Wyrmwood,

L'aggiornamento di pip non ha alcun impatto negativo (in ogni caso) su Python 2.7, che viene fornito per impostazione predefinita.
Afflitto il

10

Sembra che questo potrebbe essere un problema con l'installazione del file .whl per pip8.1.2. Una soluzione per installare pip8.1.2 è scaricare il sorgente direttamente da PyPi e installarlo tramite setup.py.

Per me ha funzionato:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

Questa ovviamente non è una soluzione per installare pip 8.1.2 tramite pip install --upgrade, ma dovrebbe eliminare l'avvertimento fino a quando il problema non viene risolto .


C'è un commento su quel thread che suggerisce che ciò sia in parte correlato all'ubuntu che corregge la loro versione pacchettizzata di pip per fermarlo aggiornando i pacchetti installati.
Amias,

5

sudo -H python -m pip install --upgrade piprisolverà il tuo problema. Come qualcuno ha menzionato sopra, anche se lo specifico del sistema richiede python 2.7 per certe cose ... Detto questo, puoi aggiornare pip senza influire negativamente su questo, ma puoi anche installare 3.5 a fianco se vuoi.

il -Hè una bandiera per sudoche le richieste che la politica di sicurezza impostata la variabile d'ambiente HOME per la home directory specificata dalla voce del database password dell'utente di destinazione. A seconda della politica, questo potrebbe essere il comportamento predefinito.


Se qualcuno vuole sottovalutare un post pensato come questo, dovresti davvero dire perché questa è una forma scadente.
javadba,

Perché sono arrabbiati e hanno bisogno di sfogare la rabbia su qualcuno. Arrabbiato per quello che chiedi, la vita in generale. lo overflow dello stack si è trasformato in nient'altro che un posto in cui venire ed essere molestato.
Afflitto il

2

Disinstallare pip usando apt-get e installarlo usando easy_install. Ha funzionato per me.

sudo apt-get remove python-pip
sudo easy_install pip

easy_install ha esito negativo. Ho capito bash: /usr/bin/pip: No such file or directory. E non posso nemmeno eliminare pip adesso. Spero che questo non abbia completamente rotto il pip sulla mia macchina.
Decano Schulze il
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.