Pip soudainement à l'aide d'une mauvaise version de Python
Avoir un problème bizarre avec le pip sur os x.
Aussi loin que je puisse me rappeler (et un coup d'œil rapide à mon .bash_history semble confirmer) je n'ai pas fait des changements récents apportés à ma configuration. Hélas, le pip commande semble être tout à coup à l'aide d'une autre version de python que c'était auparavant. Jusqu'à maintenant j'ai été en utilisant la commande pip pour gérer mon python2 les bibliothèques et les pip3 à gérer par python3 bibliothèques. Soudain, toutes les tentatives d'exécution du pip install échoue avec des erreurs comme manquant entre parenthèses autour des instructions d'impression.
Voici le résultat de quelques commandes que j'ai tenté de comprendre le problème:
which pip > /usr/local/bin/pip
which pip3 > /usr/local/bin/pip3
which python > /usr/local/bin/python
python version > Python 2.7.11
pip --version > pip 8.1.1 from /usr/local/lib/python3.5/site-packages (python 3.5)
Si pour une raison quelconque, le pip commande semble être en cours d'exécution à partir de la PyPi2 base de données, mais en python3 maintenant? Toutes les idées de comment résoudre ce problème?
- Toute chance d'un autre programme (comme un script d'installation) a été ajouté quelque chose à votre
.bashrc
ou lié à ce programme de pip3? - Quelle est la version de OSX êtes-vous en cours d'exécution? Où avez-vous que python? Homebrew? Êtes-vous sûr de ne pas mettre à jour quelque chose?
- C'est possible, mais je ne vois rien dans mon .bash_profile (et qui n'ont pas .bashrc) - je exécuter brasser de la mise à jour et à l'infusion de mise à niveau de tous les jours. OS X version est 10.11.4. de
- Si vous êtes sur Mac OS X et de mise à jour de python avec brew. Il semble assommer pip. Ses est arrivé plus d'une fois pour moi.
- veuillez voir ma réponse stackoverflow.com/a/37586175/4988742 et laissez-moi savoir si ce qui a été la cause.
Vous devez vous connecter pour publier un commentaire.
Je cours avec plusieurs versions de Python et donc plusieurs pip versions.
À chaque fois, cependant, vous mettez à jour pip, vous pourrez remplacer la norme
pip
de commande avec la version de la mise à jour. Donc, mêmepip3 install --upgrade pip
va mettre un/usr/local/bin/pip
dans votre système, gâcher le Python version 2.Au lieu de cela, je lance pip comme un (exécutable) module:
ou
ou même
Cela garantit que votre
pip
version correspond toujours à la version de Python que vous voulez l'utiliser pour. C'est un peu plus long, mais je préfère le expliciteness (ce qui, j'imagine, suit le Zen de Python).Noter que la mise à jour pip:
seront toujours installer un Python version 3.5 en
/usr/local/bin/pip
, mais je suis simplement en ignorant que. Juste un peu attention (shell) de scripts qui s'exécutentpip
directement.J'ai eu exactement le même problème!
J'ai réinstaller python2 par infusion
brew reinstall python@2
après la réinstallation,
pip install packagename
fonctionne!brew uninstall python@2
puisbrew install python@2
. réinstallez n'a pas fonctionné.Essayez de définir des alias en exécutant les commandes suivantes dans le Terminal,
Si cela résout votre problème, alors vous devez ajouter les alias dans votre bash profil.
Regarder Comment puis-je créer un alias Bash? pour plus d'info.
Sinon, vous devez réinstaller pip à l'aide de
python2 get-pip.py
d'abord et ensuitepython3 get-pip.py
get-pip.py peut être téléchargé ici https://bootstrap.pypa.io/get-pip.py/usr/local/bin/pip
est maintenant lié à l'pip3 donc je ne pense pas que votre solution fonctionne.Trouver le chemin absolu de Python que vous souhaitez utiliser:
Ouvrir votre pip par défaut script exécutable:
Vous verrez une ligne shebang le sommet, ce qui peut indiquer à tort Python (j'ai eu qu'une fois de trop).
Point pour le Python que vous souhaitez (voir l'étape 1), par exemple: