Comment installer la dernière version de pip quand j'ai déjà installé le fourni par Ubuntu?

18

Dans Ubuntu 16.04 lorsque vous faites:

pip install --upgrade pip

vous obtenez:

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.

C'est suffisant. Essayez maintenant

pip install --upgrade pip

et vous obtenez:

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.

Alors, comment obtenir réellement pip 8.1.2?

user2413
la source
Ça sudo -H pip install --upgrade pipmarche?
edwinksl
@edwinksl: il donne les mêmes résultats que les autres commandes.
user2413
Cela semble étrange car cela a fonctionné pour moi. Besoin probablement de déposer un rapport de bogue.
edwinksl
@edwinksl: merci. J'attendrai quelques jours de plus et je le ferai>
user2413
1
@edwinksl Je viens d' ouvrir un problème au cas où quelqu'un voudrait le suivre.
sethmlarson

Réponses:

13

Ce n'est pas une bonne idée de mettre à jour le python du système à moins que vous ne travailliez réellement sur du code Ubuntu et que vous ayez une raison spécifique de le faire. Il existe de nombreuses dépendances système que vous pouvez rompre en mettant à jour avec pip au lieu d'utiliser les bibliothèques python dans le référentiel APT.

Si vous développez des applications python et devez changer les versions des bibliothèques, vous devez utiliser les options --user pour piper ou créer un virtualenv pour stocker les versions des bibliothèques de vos utilisateurs.

Ces deux méthodes retomberont gracieusement dans l'utilisation des bibliothèques système si elles n'ont pas leurs propres copies, virtualenv a plus d'options sur la façon de contrôler ces commentaires.

pip avec --user

C'est aussi simple que d'ajouter simplement --user à la fin de toutes vos commandes pip, cela mettra vos bibliothèques python dans ~ / .local / lib / pythonX.X (où XX est votre numéro de version python), elles seront regardées car ici, faites juste attention à faire ceci pour root si vous devez exécuter via sudo car cela peut affecter le python du système.

virtualenv

Cela fonctionne de la même manière que ci-dessus mais est moins lié à un utilisateur spécifique, il n'a donc pas la limitation sudo, vous pouvez également cloner un virtualenv et le mettre à niveau pour tester les modifications, vous permettant ainsi de revenir en arrière s'il est nul. http://docs.python-guide.org/en/latest/dev/virtualenvs/

Amias
la source
1
Vous voulez vraiment faire une installation alternative de python si vous voulez 2.7, donc vous n'interférerez pas avec le python OS. De là, vous devez mettre à jour pip dans l'installation alt avant le venv. Vous voulez également que --no-cache-dir empêche l'installation de la version en cache.
Wyrmwood
La mise à jour de pip n'a pas d'impact négatif (de toute façon) sur python 2.7 qui est livré par défaut.
Affligé
10

Il semble que cela puisse être un problème lors de l'installation du fichier .whl pour pip8.1.2. Une pipsolution de contournement pour installer 8.1.2 consiste à télécharger la source directement depuis PyPi et à l'installer via setup.py.

Ce qui suit a fonctionné pour moi:

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

Bien sûr, ce n'est pas une solution pour installer pip 8.1.2 via pip install --upgrade, mais devrait éteindre l'avertissement jusqu'à ce que ce problème soit résolu .

sethmlarson
la source
Il y a un commentaire sur ce fil qui suggère que cela est en partie lié à ubuntu corrigeant leur version packagée de pip pour l'empêcher de mettre à niveau les paquets installés apt.
Amias
5

sudo -H python -m pip install --upgrade pipva résoudre votre problème. Comme quelqu'un l'a mentionné ci-dessus, bien que le système spécifique nécessite python 2.7 pour certaines choses ... Cela étant dit, vous pouvez mettre à niveau pip sans avoir un impact négatif sur cela, mais vous pouvez également installer 3.5 à côté si vous le souhaitez.

l' -Hest un drapeau pour sudoque les demandes que la politique de sécurité définie la variable d'environnement HOME au répertoire spécifié par l'entrée de la base de données de mot de passe de l'utilisateur cible. Selon la stratégie, il peut s'agir du comportement par défaut.

Affligé
la source
Si quelqu'un veut voter contre un article réfléchi comme celui-ci, vous devriez vraiment dire pourquoi c'est une mauvaise forme.
javadba
Parce qu'ils sont en colère et doivent exprimer leur colère contre quelqu'un. En colère contre ce que vous demandez, la vie en général. le débordement de la pile n'est devenu qu'un endroit où venir et être harcelé.
Affligé le
2

Désinstallez pip en utilisant apt-get et installez-le en utilisant easy_install. Ça a marché pour moi.

sudo apt-get remove python-pip
sudo easy_install pip
toliveira
la source
easy_install échoue. Je comprends bash: /usr/bin/pip: No such file or directory. Et je ne peux plus purger pip maintenant. J'espère que cela n'a pas complètement cassé le pépin de ma machine.
Dean Schulze