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.
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.
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.