Ich habe Python mit Homebrew installiert und kann Pip nicht von Bash aus aufrufen. Ich habe vergeblich versucht, mein .bash_profile zu ändern, um /usr/local/bin/python und /usr local/share/python einzuschließen.
Wenn ich den Bash-Befehl verwende:
find / -name 'pip'
Die einzigen Ergebnisse, die ich erhalte, sind:
/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
Keine davon ist eine ausführbare Datei.
Ich weiß nicht wirklich, wohin ich meinen $PATH richten soll, da ich die ausführbare Pip-Datei nicht finden kann. Wenn ich öffne
/usr/local/lib/python2.7/site-packages/pip
oder
/usr/local/Cellar/python/2.7.9/libexec/pip/pip
Ich finde folgende Dateien:
__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
Keine davon ist eine ausführbare Datei.
Ich würde mich über die Hilfe von jedem freuen, der mehr Erfahrung hat als ich.
Bearbeiten: Ich habe die von Marco vorgeschlagenen Schritte ausprobiert:
Hier sind die Ergebnisse der Schritte:
echo $PATH zeigt einige Verzeichnisse: /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
which -a python gibt zurück: /usr/local/bin/python /usr/local/bin/python
es wird nichts zurückgegeben, wofür -a pip
- was Python zurückgibt: /usr/local/bin/python
Für welchen Pip wird nichts zurückgegeben
- ls -l $(which python) gibt ein einzelnes Verzeichnis zurück: lrwxr-xr-x 1 Ivan admin 33 17. Mai 08:59 /usr/local/bin/python -> ../Cellar/python/2.7.9/bin/python
ls -l $(which pip) gibt mehrere zurück, darunter die Python-Dateien, die ich in meinem ursprünglichen Beitrag gezeigt habe
Antwort1
Im Allgemeinen wird ein in homebrew
installiert und dann ein Link bei platziert .formula
/usr/local/Cellar/formula
/usr/local/bin/formula
Um Ihre installierten Formeln zu verwenden, stellen Sie sicher, /usr/local/bin
dass in Ihrem ist $PATH
. Zeigen Sie Ihre $PATH
durch Eintippen
echo $PATH
Wenn /usr/local/bin
es nicht in Ihrer Datei ist $PATH
, fügen Sie diese Zeile am Ende Ihrer ~/.profile
Datei ein.
export PATH="/usr/local/bin:$PATH"
Überprüfen Sie nun, was pythons
auf Ihrem OSX gefunden wurde, indem Sie Folgendes eingeben:
which -a python
Es sollte eine Python-Version unter /usr/bin/
(die Apple-Python-Version) und eine unter /usr/local/bin/
(die Homebrew-Python-Version) zu finden sein.
which python
zeigt Ihnen, welches Python in Ihrem zuerst gefunden wird $PATH
und ausgeführt wird, wenn Sie aufrufen python
.
Wenn Sie wissen möchten, wo sich die ausführbare Datei befindet, geben Sie Folgendes ein:
ls -l $(which python)
Das könnte dann so aussehen: lrwxr-xr-x 1 root wheel 68 7 Mai 13:22 python -> /usr/local/bin/python
pip
Dies wird auch für funktionieren .
Wenn Sie die Ergebnisse dieser Schritte zeigen, können wir Ihnen wahrscheinlich viel einfacher helfen.
-- AKTUALISIEREN --
Du hast /usr/local/bin/python
verlinkt auf /usr/local/Cellar/python/2.7.9/bin/python
. -> brew install python
hat geklappt.
zeigen Sie an, ob pip
es installiert ist, indem Sie eingeben
brew list python | grep pip
Das solltest du sehen
/usr/local/Cellar/python/2.7.9/bin/pip
Wenn nicht, prüfe, ob es Links gibt, die nicht mit abgeschlossen sind brew install
. Ich habe dir so etwas gesagt:
"Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local"
So erzwingen Sie die Verknüpfung und überschreiben alle in Konflikt stehenden Dateien:
brew link --overwrite python
So listen Sie alle Dateien auf, die gelöscht werden würden:
brew link --overwrite --dry-run python
** KEIN Standard-Apple /usr/bin/python
**
Link von /usr/local/Cellar/python/2.7.9/bin/python
bis/usr/bin/python
ln -s /usr/local/Cellar/python/2.7.9/bin/python /usr/bin/python
Dies ist für alle Python-Skripte erforderlich, die mit beginnen #!/usr/bin/python
. Insbesondere easy_install
tritt ein Fehler auf, wenn kein Link vorhanden ist.
Jetzt können Sie laufen
easy_install pip
Hoffe, du machst Fortschritte
Antwort2
Wenn Brew Ihre Python-Installation verwaltet und Pip nicht mehr symbolisch verknüpft ist (d. h. Sie geben „which pip“ ein und erhalten keine Ergebnisse), versuchen Sie Folgendes von Ihrem Home-Verzeichnis aus:
brew unlink python && brew link python
Ich bin nicht sicher, ob die alte Methode noch funktioniert (auf meinem Computer hat sie nicht funktioniert).
Bestätigen Sie nun, dass es tatsächlich auf Ihre 2.7-Installation verweist pip --version
(die Hauptversion von Python wird in der Verzeichnisausgabe aufgelistet).
Antwort3
Dies ist nicht wirklich eine Antwort auf die ursprüngliche Frage, aber wenn jemand hier landet, weil seine Homebrew-Installation python/pip
nicht mehr funktioniert (d. h. python
auf das System-Python verweist und pip
nicht gefunden wird), dann könnte der Grund eine kürzliche (Sommer 2017) Änderung in der Art und Weise sein, wie Homebrew Python installiert und verknüpft.
Die Lösung besteht darin, Folgendes zu ~/.bash_profile
und/oder hinzuzufügen ~/.zshrc
:
export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"
Dies wird python
auf die Brew-Version von Python verweisen und Ihnen auch geben pip
. Siehe den Abschnitt mit den Vorbehalten unter brew info python
undhttps://github.com/Homebrew/homebrew-core/issues/15746für mehr Informationen
Antwort4
Homebrew stellt Pip standardmäßig über Folgendes bereit: brew install python
. Wenn Sie dann jedoch zwei Pythons auf Ihrem Mac installiert haben, können Sie es alternativ über Folgendes installieren:
sudo easy_install pip
Um zu überprüfen, welche Dateien mit Ihrem Python-Paket installiert sind, versuchen Sie Folgendes:
$ 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
...
welches bestehen sollte pip
.
Nach der Installation sollten Sie die installierten Dateien Ihrer Formel wie folgt symbolisch verknüpfen:
brew link python
Dadurch sollten die richtigen symbolischen Links erstellt werden (z. B. /usr/local/bin/pip
auf Ihr Cellar/python/2.?.?/bin/pip
).
Wenn Sie ein Berechtigungsproblem haben, können Sie es wie folgt beheben:
sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew
und stellen Sie sicher, dass Ihr Benutzer zur Administratorgruppe gehört ( id -Gn $USER
).
Nach dem Korrigieren der Berechtigungen nicht mehr sudo
bei der Verwendung brew
des Befehls verwenden.
Dann verlinken Sie es noch einmal:
brew unlink python && brew link python
Um einen Probelauf durchzuführen, heben Sie die Verknüpfung auf und führen Sie Folgendes aus: brew link -n python
um die Links der Dateien anzuzeigen, die brew
verknüpft werden würden.
Stellen Sie nach erfolgreicher Verknüpfung sicher, dass Ihre Systemvariable PATH über verfügt. /usr/local
Wenn nicht, fügen Sie Folgendes hinzu:
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
zu Ihrer ~/.bashrc
Datei.
Bei Erfolg pip
sollte es jetzt funktionieren.