web-dev-qa-db-fra.com

Pourquoi pip -t ne fonctionne-t-il pas sur Ubuntu 15.04?

J'ai eu un problème étrange avec pip sur Ubuntu 15.04. Lorsque j'essaie d'installer quoi que ce soit en utilisant l'option "-t" pour le placer dans un répertoire spécifique, cela échoue avec l'erreur suivante:

error: can't combine user with prefix, exec_prefix/home, or install_(plat)base

Par exemple, pip install -t <directory> <package> échoue avec cette erreur.

Mon pip est la version 1.5.6 et ma version Python est la version 2.7.

J'ai exécuté les mêmes commandes sur mes systèmes 14.10 sans aucun problème. Je ne peux donc que conclure qu'il s'agit d'un problème spécifique à 15.04.

7
djpetti

J'ai rencontré le même problème et ce que j'ai remarqué, c'est que le pip dans la distribution par défaut est l'ancien 1.5.6, la version actuelle étant la version 7.1.0. Puisqu'il est difficile de cerner le problème, cherchant "l'aiguille dans une pile de foin", je l'ai retirée et installée manuellement, comme suggéré ci-dessous:

Ce commentaire: https://github.com/pypa/pip/issues/1093#issuecomment-10312788 référencé dans cette pile: https://stackoverflow.com/questions/19460232/ pip-list-crashes-with-an-assertionerror

Retirer le pip:

Sudo apt-get remove --auto-remove python-pip

Téléchargez le script d'installation:

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

Réinstallez le:

Sudo python get-pip.py

Lier les commandes à bin:

Sudo ln -s [PIP_HOME]/bin/pip /usr/local/bin/pip
Sudo ln -s [PIP_HOME]/bin/wheel /usr/local/bin/wheel
Sudo ln -s [PIP_HOME]/bin/easy_install /usr/local/bin/easy_install

Où [PIP_HOME] est le répertoire du paquet pip.

maintenant, quand je lance pip -V affiche:

pip 7.1.0 from /home/tiberiu/.local/lib/python2.7/site-packages (python 2.7)

Retour à mon problème racine la commande pip install -r requirements.txt -t lib succès avec la dernière version.

8
Tiberiu C.

Je pense que les @Tiberiu C réponse ont mis le doigt dessus. Je ne peux pas croire que la pip de la distribution soit aussi ancienne. Cependant, ces étapes pour le résoudre semblent être un peu de travail donc je voulais proposer que si vous avez déjà easy_install sur votre système également, vous pouvez vous en sortir en implémentant sa solution avec la ligne:

Sudo easy_install -U pip

Au début, j'ai essayé de faire une auto-upgrade de pip avec:

Sudo pip install --upgrade pip

Cependant, il refusera de remplacer la version distro. Mais ensuite je suis tombé sur this , ce qui m'a amené à la solution ci-dessus.

3
jeteon