pip install: Bitte überprüfen Sie die Berechtigungen und den Eigentümer dieses Verzeichnisses


155

Während der Installation von Pip und Python bin ich auf eine gestoßen, die besagt:

Das Verzeichnis '/ Users / Parthenon / Library / Logs / pi' oder sein übergeordnetes Verzeichnis gehört nicht dem aktuellen Benutzer und das Debug-Protokoll wurde deaktiviert. Bitte überprüfen Sie die Berechtigungen und den Eigentümer dieses Verzeichnisses. Wenn Sie pip mit sudo ausführen, möchten Sie möglicherweise das Flag -H.

da muss ich jetzt mit installieren sudo.

Ich hatte Python und eine Handvoll Bibliotheken bereits auf meinem Mac installiert. Ich verwende Yosemite. Ich musste kürzlich ein sauberes Löschen durchführen und dann das Betriebssystem neu installieren. Jetzt erhalte ich diese Eingabeaufforderung und habe Probleme, herauszufinden, wie ich sie ändern kann

Bevor meine Kommandozeile Parthenon$jetzt war, ist esPhilips-MBP:~ Parthenon$

Ich bin der alleinige Besitzer dieses Computers und dies ist das einzige Konto darauf. Dies scheint ein Problem beim Upgrade auf Python 3.4 zu sein, nichts scheint am richtigen Ort zu sein, virtualenv geht nicht dahin, wo ich es erwartet habe usw.


Ist Ihr Kontoname Philip?
Komaromy

Ich habe gerade bemerkt, dass dies passiert ist, als ich gestern pip auf meinem eigenen Computer verwendet habe. Was meinst du mit virtualenv geht nicht dahin, wo du es erwartest?
Padraic Cunningham

Ich habe Python 3.4 auf meinem Computer installiert, aber wenn ich Python in meinem Terminal ausführe, wird 2.7 auch nach Abschluss des gesamten Installationsprozesses ausgeführt. Ich habe virtualenv nur erwähnt, weil ich normalerweise erwarten würde, es in Library / Python / 3.4 zu finden, aber es gibt keine Library / Python / 3.4
Phil Andrews

Sie müssen etwas wie Python3 oder Python3.4 verwenden, um den Python3-Interpreter zu verwenden. Die Elemente, die erneut geöffnet werden, sind nur eine Einstellung. Ubuntu hat die gleiche Option.
Padraic Cunningham

@PadraicCunningham bekommen Sie das gleiche Pip-Problem? Haben Sie kürzlich ein Upgrade auf Yosemite durchgeführt?
Phil Andrews

Antworten:


127

Ich habe diese Änderung auch auf meinem Mac gesehen, als ich vom Laufen pipzu gewechselt bin sudo pip. Das Hinzufügen -Hzu sudo bewirkt, dass die Nachricht für mich verschwindet. Z.B

sudo -H pip install foo

man sudosagt mir, dass die -HUrsachen sudoauf $HOMEdie Zielbenutzer gesetzt werden (in diesem Fall root).

So scheint es , pip sucht in $HOME/Library/Logund sudoist standardmäßig nicht Einstellung $HOMEzu /root/. Es überrascht nicht, dass ~/Library/LogSie als Benutzer im Besitz von root sind.

Ich vermute, dass dies eine kürzliche Änderung in pip ist. Ich werde es vorerst ausführen, um es sudo -Hzu umgehen.


18
Bitte beachten Sie, dass die Verwendung sudo pipvöllig falsch ist. Weitere Informationen finden Sie hier stackoverflow.com/questions/33004708/…
Mikko Ohtamaa

Ich hatte das gleiche Problem, aber jetzt muss ich mit dem "-H" -Flag installieren.
Malachi Bazar

62

Was ist das Problem hier ist, dass Sie irgendwie in virtualenv mit installiert haben sudo. Wahrscheinlich aus Versehen. Dies bedeutet, dass der rootBenutzer Python-Paketdaten neu schreibt, sodass alle Dateien im Besitz von root sind und Ihr normaler Benutzer diese Dateien nicht mehr schreiben kann. Normalerweise sollte virtualenv nur von Ihrem normalen UNIX-Benutzer verwendet werden und ihm gehören.

Sie können das Problem beheben, indem Sie das UNIX-Dateiberechtigungspaket für Ihren Benutzer ändern. Versuchen:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

dann pipsollte es möglich sein, diese Dateien wieder zu schreiben.

Weitere Informationen zur Verwaltung von UNIX-Dateiberechtigungen


Pip schreibt immer noch mit dem Fehler. Ich habe auch eine ähnliche Warnung und meine Berechtigungen sind korrekt. Das OP verwendet keine virtuelle Umgebung. Daher ist es sinnvoll, dass für die globale Installation von Paketen sudo erforderlich ist.
Padraic Cunningham

1
@PadraicCunningham: Wenn pip einen Fehler anzeigt, dass Ihre Berechtigungen falsch sind, zeigen Sie bitte Ihre Dateiberechtigungen an, damit wir herausfinden können, was mit ihnen nicht stimmt. Andernfalls wäre das Helfen ein Schuss in die Dunkelheit.
Mikko Ohtamaa

Ich schlage auch vor, dass Sie eine andere Frage öffnen, da Ihr Problem möglicherweise anders ist als das des ursprünglichen Autors
Mikko Ohtamaa

Bei Verwendung meines eigenen Benutzernamens wurde folgende Fehlermeldung angezeigt: Eingabe: sudo chown -R USERNAME / Users / USERNAME / Library / Logs / pip Ausgabe: chown: / Users / USERNAME / Library / Logs / pip: Keine solche Datei oder kein solches Verzeichnis
user2755660

61

pip install --user <package name> (kein Sudo erforderlich) arbeitete für mich für ein sehr ähnliches Problem.


Sie müssen mindestens eine Voraussetzung für die Installation angeben (siehe "pip help install")
Amir

0

Basisinformation

  • System: Mac OS 18.0.0
  • aktueller Benutzer: yutou

der Schlüssel

  1. Fügen Sie das aktuelle Konto zur Radgruppe hinzu
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. Ändern Sie den Python-Paketmodus auf 775.
chmod -R 775 ${this_is_your_python_package_path}

das ganze Ding

  • Wenn Python3 gut kompiliert ist, entspricht die Information genau der gestellten Frage.
  • Ich versuche zu benutzen pip3 install requestsund habe:
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • Also habe ich cd /usr/local/python3/lib/python3.6/site-packagesdann ls -alund bekam:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

Als ich das sah, verstand ich, dass Makedirs eine Aktion des Schreibens ist, aber der Anforderungsmodus, der drwxrwxr-xangezeigt wird, dass nur der Benutzer root die Anforderungsdatei schreiben kann. Wenn du hinzufügst (whoami ) zum Gruppenrad und das Paket so ändern, dass das Gruppenrad schreiben kann, dann kann ich schreiben und das Problem lösen.

Wie füge ich dich zum Gruppenrad hinzu? + Gruppenrad erkennen sudo dscl . -list /groups GroupMembership, finden Sie:

wheel                    root

Das Gruppenrad hat nur eine Mitgliedswurzel. + füge yutou zum Gruppenrad hinzu , sudo dscl . -append /Groups/wheel wheel yutou. + check , sudo dscl . -list /groups GroupMembership:

wheel                    root yutou

Ändern Sie den Python-Paketmodus

chmod -R 775 /usr/local/python3/lib/python3.6

0

Wenn Sie Ihre Variable $ PATH geändert haben, kann dies ebenfalls zu dem Problem führen. Wenn Sie der Meinung sind, dass dies das Problem sein könnte, überprüfen Sie Ihr ~ / .bash_profile oder ~ / .bashrc

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.