Wenn ich renne:
sudo pip install ipython
Ich erhalte den folgenden Fehler
OSError: [Errno: 1] Vorgang nicht zulässig: '/System/Library/Frameworks/Python.framework/Versions/2.7/share'
Der zuletzt ausgeführte Befehl versucht, das oben angegebene Verzeichnis zu erstellen.
Mit dem folgenden Befehl kann iPython nicht ohne Fehler installiert werden.
sudo pip install --user python
(Ich bin unter Mac OS X El Capitan, falls andere Leute unter diesem Betriebssystem das gleiche Problem sehen.)
pip
ipython
failed-installation
osx-elcapitan
Milad M.
quelle
quelle
$PATH
damit Sie die ausführbaren Dateien für installierte --user-Pakete aufrufen können. stackoverflow.com/a/47102398/117471sudo
mit verwenden--user
. Was--user
ist zu installieren,~/Library
anstatt/Library
Sie müssen nicht verwendensudo
, um dort zu installieren. Sobald Sie mit installiert habensudo
, gehören die Verzeichnisse und Dateien allenroot
. Dann müssen Sie verwenden,sudo
um ihnen etwas anderes anzutun. Was wiederum erfordert, dass Sie essudo
für andere Dinge verwenden, für die Sie es nicht verwenden sollten. Dann kann sogar ein ehrlicher Fehler vom Auslösen eines Fehlers zur Zerstörung von Daten führen.Antworten:
Anweisungen
sudo pip install
sind von Natur aus falsch.Wenn es ein Tutorial gibt, das besagt, dass Sie es tun sollten, melden Sie
sudo pip
bitte einen Fehler gegen dieses Paket. Der Autor entbindet die Python-Community, da sich die Zeitsudo pip
als gebrochene Praxis erwiesen hat .OSX El Capitan hat einen Mechanismus eingeführt, um eine Beschädigung der Betriebssystemdateien zu verhindern .
/System/Library/Frameworks/Python.framework/Versions/2.7/share
ist einer der geschützten Orte. Ein normaler Benutzer hat keinen Grund, dort Dateien abzulegen oder zu schreiben . Dies liegt daran, dass das Betriebssystem selbst auf diese Dateien angewiesen ist und siesudo pip
mit der oben angegebenen Kraft bedingungslos überschreiben würde. Normalerweise würden keine schlechten Dinge passieren, aber die Chancen stehen gut. Apple möchte seine Betriebssystembenutzer davor schützen, ihre Installation versehentlich zu blockieren.Stattdessen müssen Sie ein Python-Paket wie IPython lokal im Home-Ordner Ihres Benutzers installieren . Am einfachsten ist es, eine virtuelle Umgebung zu erstellen , zu aktivieren und dann pip in der virtuellen Umgebung auszuführen .
Beispiel:
Mehr Info
Offizielles Tutorial zur Installation von Python-Paketen .
So erstellen Sie virtuelle Umgebungen .
Alternativ sollte man dazu in der Lage sein
pip install --user
. Aber auch hier wird kein Sudo benötigt und Sie müssen diePATH
Umgebungsvariable manuell einrichten .quelle
easy_install
stehendepip install virtualenv
sollte für Python 3.4+ nicht mehr benötigt werden, da sie mit integriertempython -m venv
virtualenv-Äquivalent geliefert werden. docs.python.org/3/library/venv.htmlpip install --user IPython
Hilfe dabei. Außerdempip install --user IPython
kann deripython
Befehl nicht in$PATH
(zumindest auf meinem Computer) platziert werden.Ich hatte die gleichen Probleme, aber mit
easy_install "module"
löste das Problem für mich.Ich bin mir nicht sicher warum, aber pip und easy_install verwenden unterschiedliche Installationsorte, und easy_install hat die richtigen ausgewählt.
Bearbeiten: ohne erneute Überprüfung, aber wegen der Kommentare; Es scheint, dass sich verschiedene (OSX- und Brew-installierte) Installationen gegenseitig stören, weshalb die genannten Tools tatsächlich auf unterschiedliche Speicherorte verweisen (da sie zu unterschiedlichen Installationen gehören). Ich verstehe, dass normalerweise diese Tools von einem Installationspunkt auf denselben Ordner verweisen.
quelle
easy_install
sind für einen anderen konfiguriert?easy_install
für alle von ihnen:easy_install-2.6
,easy_install-2.7
,easy_install-3.5
pip
undeasy_install
verweisen auf verschiedene Pythons. Sie können dies mit demwhich
UNIX-Befehl herausfinden und dann den richtigenpip
Befehl für die Verwendung herausfinden .Sie sollten Python neu installieren:
Informationen zum Brauen finden Sie auf der Brauhomepage .
quelle
brew install python
dann denke ichpip
ist schon da. Nachdem diesepip
Installation funktioniert hat (ich hatte ähnliche Probleme mit Berechtigungen und Pip Bailing bei Installationen)pip install --ignore-installed six
Dies erledigt den Job, dann können Sie Ihren ersten Befehl versuchen.
Über http://github.com/pypa/pip/issues/3165
quelle
pip install --ignore-installed setuptools
.Wird
pip3 install <package>
stattdessen verwendet und das Berechtigungsproblem mit gelöstpip
.quelle
pip3
Python 3 verwendet wird, das normalerweise vom Benutzer installiert wird. Python 2 (2.7) wird dagegen mit macOS ausgeliefert und ist geschützt, wie in der am besten bewerteten Antwort erläutert.TL; DR $ PATH fix
pip install --user package_name
diese Option, um ein Paket zu installieren, das ausführbare CLI-Dateien enthalten soll.import package_name
lib/python/...
in der Ausgabe vorkommt, und ersetzen Sie alles durchbin
$HOME/Library/Python/2.7/bin
Einzelheiten
Aufgrund des neuen Systemintegritätsschutzes in macOS 10.11 El Capitan können Sie dies nicht mehr
sudo pip install
. Wir werden hier nicht darüber diskutieren.Eine andere Antwort erklärt, dass Sie sollten,
pip install --user
was richtig ist. Aber sie haben Sie in die Seitengassen geschickt, um herauszufinden, was Sie tun müssen,$PATH
damit Sie Zugriff auf installierte ausführbare Dateien erhalten. Zum Glück habe ich bereits ein ähnliches Bedürfnis nach einer nicht verwandten Frage gelöst .Hier ist eine Abschrift davon, wie ich das Problem auf einem meiner Systeme gelöst habe. Ich schließe alles eher ein als das
$PATH
, was für mich funktioniert hat, weil Ihr System sich möglicherweise von meinem unterscheidet. Dieser Prozess sollte für alle funktionieren.quelle
Gleicher Fehler
und hier benutze ich
--user
ohnesudo
dieses Problem zu lösenHoffe, es wird jemandem helfen, der auf ein ähnliches Problem stößt!
quelle
sudo
mit verwenden--user
. Was--user
ist zu installieren,~/Library
anstatt/Library
Sie müssen nicht verwendensudo
, um dort zu installieren. Sobald Sie mit installiert habensudo
, gehören die Verzeichnisse und Dateien allenroot
. Dann müssen Sie verwenden,sudo
um ihnen etwas anderes anzutun. Was wiederum erfordert, dass Sie essudo
für andere Dinge verwenden, für die Sie es nicht verwenden sollten. Dann kann sogar ein ehrlicher Fehler vom Auslösen eines Fehlers zur Zerstörung von Daten führen.Ich hatte die gleichen Probleme. Wie andere bereits erwähnt haben, führen Sie die Pip-Installation nicht mit sudo aus. Lauf
und beheben Sie die Warnungen, und Sie sollten in der Lage sein, mit der Pip-Installation fortzufahren.
quelle
Es ist aus mehreren Gründen schwierig, Pip an El Capitan zum Laufen zu bringen:
/System/Library/
. El Capitan blockiert dies. Dies ist der Fehler, auf den Sie stoßen./System/Library/
. pip möchte diese oft aktualisieren, kann sie aber nicht auf El Capitan./System/Library/
in der Python-Suchreihenfolge höher als/Library/Python/2.7/site-packages
(der systemweite Speicherort des Python-Pakets). Selbst wenn Sie neuere Versionen einiger Pakete installieren, werden die alten weiterhin geladen, wodurch einige Abhängigkeiten aufgehoben werden.Für all dies gibt es Problemumgehungen unter https://apple.stackexchange.com/a/223163/143849 . Am besten installieren Sie jedoch Ihre eigene Python-Version über das Standard-Python-Installationsprogramm Homebrew oder Anaconda.
quelle
Ich denke, Sie haben einen Konflikt mit anderen Paketen. Für mich war es
six
. Sie müssen also einen Befehl wie diesen verwenden:oder
pip install --ignore-installed six
quelle
six
.Ich stimme Mikko voll und ganz zu, aber wenn Sie es trotzdem tun möchten, ist hier der Weg:
csrutil disable
quelle
Ich habe Python2.7 über Brew installiert und das Folgende hat mein Problem gelöst
brauen install numpy
Es installiert Python3, funktioniert aber immer noch und richtet es auch für 2.7 ein.
quelle