web-dev-qa-db-fra.com

le pip ne fonctionne pas sur l’installation de homebrew python 2.7

J'ai installé python en utilisant homebrew et je ne peux pas invoquer pip depuis le bash. J'ai essayé d'amender mon fichier .bash_profile pour y inclure/usr/local/bin/python et/usr local/share/python, mais en vain.

Quand j'utilise la commande bash:

find / -name 'pip'

Les seuls résultats que je reçois sont:

/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip
/Users/Ivan/Library/Caches/pip
/Users/Ivan/Library/Logs/pip
/usr/local/Cellar/python/2.7.9/libexec/pip
/usr/local/Cellar/python/2.7.9/libexec/pip/pip
/usr/local/lib/python2.7/site-packages/pip

Aucun de ceux qui sont un exécutable.

Je ne sais pas vraiment où diriger mon $ PATH car je ne trouve pas l'exécutable pip. Quand j'ouvre

/usr/local/lib/python2.7/site-packages/pip

ou

/usr/local/Cellar/python/2.7.9/libexec/pip/pip

Je trouve les fichiers suivants:

__init__.py         commands            operations
__init__.pyc        compat              pep425tags.py
__main__.py         download.py         pep425tags.pyc
__main__.pyc        download.pyc        req
_vendor             exceptions.py       status_codes.py
basecommand.py      exceptions.pyc      status_codes.pyc
basecommand.pyc     index.py            utils
baseparser.py       index.pyc           vcs
baseparser.pyc      locations.py        wheel.py
cmdoptions.py       locations.pyc       wheel.pyc
cmdoptions.pyc      models

Aucun de ceux qui sont un exécutable.

J'apprécierais l'aide de toute personne ayant plus d'expérience que moi.

Edit: j'ai essayé les étapes proposées par Marco:

Voici les résultats aux étapes:

  1. echo $ PATH affiche quelques répertoires:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/opt/X11/bin:/usr/local/mysql/bin

  2. auquel -a un python retourne:/usr/local/bin/python/usr/local/bin/python

rien n'est retourné pour lequel -a pip

  1. quel python retourne:/usr/local/bin/python

rien n'est retourné pour quel pip

  1. ls -l $ (quel python) renvoie un répertoire unique: lrwxr-xr-x 1 Ivan admin 33 17 May 08:59/usr/local/bin/python -> ../Cellar/python/2.7.9/bin/ python

ls -l $ (quel pip) en renvoie plusieurs, y compris les fichiers python que j'ai montrés dans mon message d'origine

15
YoungPadawan

Généralement, homebrew installera une formula dans /usr/local/Cellar/formula, puis placera un lien à /usr/local/bin/formula.

Pour utiliser vos formules installées, assurez-vous que /usr/local/bin est bien dans votre $PATH. Affichez votre $PATH en tapant

echo $PATH

Si /usr/local/bin ne figure pas dans votre $PATH, insérez cette ligne à la fin de votre fichier ~/.profile.

export PATH="/usr/local/bin:$PATH"

Maintenant, vérifiez ce que pythons trouve sur votre OSX en tapant:

which -a python

Il devrait y avoir un python trouvé à /usr/bin/ (le python Apple) et un à /usr/local/bin/ qui est le python Homebrew.

which python

vous indiquera quel python se trouve en premier dans votre $PATH et sera exécuté lorsque vous appelez python.

Si vous voulez savoir où se trouve l'exécutable, affichez-le en tapant

ls -l $(which python)

Cela pourrait ressembler à ceci: lrwxr-xr-x 1 roue de base 68 7 mai 13:22 python ->/usr/local/bin/python

Cela fonctionnera aussi pour pip.

Si vous affichez les résultats de cette procédure, nous pourrons probablement vous aider beaucoup plus facilement.

-- METTRE À JOUR --

Vous avez /usr/local/bin/python lié à /usr/local/Cellar/python/2.7.9/bin/python. -> brew install python travaillé.

show, si pip est installé en tapant

brew list python | grep pip

Tu devrais voir

/usr/local/Cellar/python/2.7.9/bin/pip

Si ce n'est pas le cas, vérifiez s'il existe des liens qui ne sont pas définis avec brew install. Je vous ai dit quelque chose comme ça:

"Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local"

Pour forcer le lien et écraser tous les fichiers en conflit:

brew link --overwrite python

Pour lister tous les fichiers qui seraient supprimés:

brew link --overwrite --dry-run python

** AUCUN Apple standard /usr/bin/python **

lien de /usr/local/Cellar/python/2.7.9/bin/python à /usr/bin/python

ln -s /usr/local/Cellar/python/2.7.9/bin/python /usr/bin/python

Ceci est nécessaire pour tous les scripts python commençant par #!/usr/bin/python. Especialy easy_install échouera si le lien n’est pas là.

Maintenant, vous pouvez courir

easy_install pip

J'espère que vous faites des progrès

19

Si brew gère votre installation python et que pip n’est plus lié symboliquement (c’est-à-dire que vous tapez "which pip" et n’obtenez aucun résultat), essayez ceci depuis votre répertoire personnel:

brew unlink python && brew link python

Pas sûr que l'ancienne méthode fonctionne plus (cela ne s'est pas passé sur ma machine).

Confirmez maintenant qu’il pointe bien sur votre installation de la version 2.7 avec pip --version (la version majeure de Python sera listée dans la sortie du répertoire).

5
GrayedFox

Pas vraiment une réponse à la question initiale, mais si quelqu'un se retrouve ici parce que son python/pip installé par Homebrew ne fonctionne plus (c'est-à-dire que python pointe vers le système python et que pip n'est pas trouvé), alors la raison pourrait être récente (été 2017) changer la manière dont Homebrew installe et relie python.

La solution consiste à ajouter les éléments suivants à ~/.bash_profile et/ou ~/.zshrc:

export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"

python indique ainsi la version brassée de python et vous donne également pip. Voir la section des avertissements sous brew info python et https://github.com/Homebrew/homebrew-core/issues/15746 pour plus d'informations.

4
bjorgvin

Par défaut, Homebrew fournit un pip via: brew install python. Cependant, vous aurez ensuite deux Pythons installés sur votre Mac. Vous pouvez également l’installer via:

Sudo easy_install pip

Pour vérifier quels fichiers sont installés avec votre paquet Python, essayez:

$ brew list python
/usr/local/Cellar/python/2.7.9/bin/pip
/usr/local/Cellar/python/2.7.9/bin/pip2
/usr/local/Cellar/python/2.7.9/bin/pip2.7
...

qui devrait consister pip.

Après l'installation, vous devez créer un lien symbolique avec les fichiers installés de votre formule en:

brew link python

qui devrait créer les bons liens symboliques (tels que /usr/local/bin/pip pointant vers votre Cellar/python/2.?.?/bin/pip)

Si vous avez un problème de permission, vous pouvez le résoudre en:

Sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
Sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

et assurez-vous que votre utilisateur est dans le groupe admin (id -Gn $USER).

Après avoir corrigé les autorisations, n'utilisez pas Sudo lorsque vous utilisez la commande brew.

Puis reconnectez-le à nouveau:

brew unlink python && brew link python

Pour tester le fonctionnement à sec, dissociez et exécutez: brew link -n python pour afficher les liens de fichiers que brew créerait.

Une fois la liaison établie, assurez-vous que votre variable système PATH a /usr/local, sinon, ajoutez:

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

dans votre fichier ~/.bashrc.

En cas de succès, votre pip devrait fonctionner maintenant.

2
kenorb