Ich habe Python mit Homebrew installiert und kann Pip nicht aus der Bash aufrufen. Ich habe versucht, mein .bash_profile so zu ändern, dass es / usr / local / bin / python und / usr local / share / python ohne Erfolg enthält.
Wenn ich den Bash-Befehl verwende:
find / -name 'pip'
Die einzigen Ergebnisse, die ich bekomme, 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 zeigen 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 jemandem freuen, der mehr Erfahrung als ich hat.
Edit: Ich habe die von Marco vorgeschlagenen Schritte ausprobiert:
Hier sind die Ergebnisse zu den Schritten:
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
welches -a Python zurückgibt: / usr / local / bin / python / usr / local / bin / python
es wird nichts zurückgegeben, wofür -a pip
- Welches Python zurückgibt: / usr / local / bin / python
Für welchen Pip wird nichts zurückgegeben
- ls -l $ (welches 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 $ (welcher pip) gibt mehrere zurück, einschließlich der Python-Dateien, die ich in meinem ursprünglichen Beitrag gezeigt habe
/usr/bin/python
. Dies ist nicht gut, da viele Python-Skripte mit beginnen#!/usr/bin/python
. Wenn es kein Python gibt, erhalten Sie Fehlermeldungen wie die Ihren. Verwenden Siebrew link --dry-run python
, um zu überprüfen, was bei der Verwendung an Ihren Links geändert wirdbrew link --overwrite python
. Wir bringen deine Pfeife zum Laufen ;-)brew link --overwrite --dry-run python
Sie, um zu sehen, welche Dateien überschrieben werden.Warning: The post-install step did not complete successfully You can try again using brew postinstall python. I tried the
Postinstall-Python-Befehl, der mich zu ein paar Dateien führte, auf die ich keinen Zugriff hatte. Jetzt kann ich pip benutzen!The post-install step did not complete successfully
anerror: could not delete '/usr/local/lib/python2.7/site-packages/pip/__init__.py': Permission denied
. Das manuelle Löschen dieser Datei und dasbrew postinstall python
erneute Ausführen haben das Problem behoben.Wenn brew Ihre Python-Installation verwaltet und pip nicht mehr mit Symlinks verbunden ist (dh Sie geben "which pip" ein und erhalten keine Ergebnisse), versuchen Sie dies in Ihrem Home-Verzeichnis:
Ich bin mir nicht sicher, ob die alte Methode noch funktioniert (auf meinem Computer nicht).
Bestätigen Sie nun, dass es tatsächlich auf Ihre 2.7-Installation mit verweist
pip --version
(es wird die Python-Hauptversion in der Verzeichnisausgabe auflisten).quelle
Keine wirkliche Antwort auf die ursprüngliche Frage, aber wenn jemand hier landet, weil sein Homebrew- System
python/pip
nicht mehr funktioniert (dhpython
auf das Python-System verweist undpip
nicht gefunden wird), könnte dies an einer kürzlichen Änderung (Sommer 2017) in der liegen So installiert und verknüpft Homebrew Python.Die Lösung besteht darin, Folgendes hinzuzufügen
~/.bash_profile
und / oder~/.zshrc
:export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"
Dies wird
python
auf die Brew-Version von Python verweisen und Ihnen auch gebenpip
. Weitere Informationen finden Sie im Abschnitt zu Vorsichtsmaßnahmen unterbrew info python
und https://github.com/Homebrew/homebrew-core/issues/15746quelle
Standardmäßig bietet Homebrew Pip über:
brew install python
. Wenn Sie jedoch zwei Pythons auf Ihrem Mac installiert haben, können Sie diese alternativ über Folgendes installieren:Um zu überprüfen, welche Dateien mit Ihrem Python-Paket installiert wurden, versuchen Sie Folgendes:
welches bestehen sollte
pip
.Nach der Installation sollten Sie die installierten Dateien Ihrer Formel folgendermaßen verknüpfen:
welche die richtigen symbolischen Verknüpfungen erstellen sollen (wie z
/usr/local/bin/pip
auf IhreCellar/python/2.?.?/bin/pip
)Wenn Sie ein Berechtigungsproblem haben, können Sie es folgendermaßen beheben:
und stellen Sie sicher, dass sich Ihr Benutzer in der Administratorgruppe befindet (
id -Gn $USER
) befindet.Verwenden Sie nach dem Korrigieren der Berechtigungen nicht
sudo
wenn Sie denbrew
Befehl verwenden.Dann verknüpfe es erneut:
Zum Testen des Testlaufs trennen und ausführen:
brew link -n python
diebrew
Verknüpfung Verknüpfungen von Dateien , die verknüpft würden.Stellen Sie nach erfolgreicher Verknüpfung sicher, dass Ihre PATH-Systemvariable
/usr/local
Folgendes enthält:zu deinem
~/.bashrc
Datei.Wenn Sie erfolgreich sind,
pip
sollten Sie jetzt arbeiten.quelle
/usr/bin/python
installiert haben (was normalerweise mit OS X bereitgestellt werden sollte). Versuchen Sie es also wie vorgeschlagen:brew install python && brew link python
und fügen/usr/local/bin
Sie es dann zu Ihrem hinzuPATH
.brew install python && brew link python
das Python einbringt/usr/bin
. Ich sehe es inusr/local/bin
, aber ich sehe nicht den Symlink, um dort zu pip. Ich habe auch Python getrennt und verknüpft, und es ändert sich nichts. Esbrew
macht nichts mit/usr/bin
, aber/usr/local/bin
. Versuchen Sie:brew unlink python
und Probelauf:brew link -n python
alle Dateien aufzulisten, die verlinkt werden sollen, und zu prüfen, ob siepip
vorhanden sind. Wenn ja, ohne erneut ausführen-n
.