instalacja pip: Sprawdź uprawnienia i właściciela tego katalogu

155

Podczas instalacji pip i pythona natknąłem się na komunikat, który mówi:

Katalog „/ Users / Parthenon / Library / Logs / pi” lub jego katalog nadrzędny nie jest własnością bieżącego użytkownika, a dziennik debugowania został wyłączony. Sprawdź uprawnienia i właściciela tego katalogu. Jeśli wykonujesz pip z sudo, możesz potrzebować flagi -H.

ponieważ muszę teraz zainstalować za pomocą sudo.

Miałem Pythona i kilka bibliotek już zainstalowanych na moim Macu, używam Yosemite. Niedawno musiałem wyczyścić pamięć, a następnie ponownie zainstalować system operacyjny. Teraz pojawia się ten monit i nie wiem, jak to zmienić

Wcześniej moja linia poleceń była Parthenon$terazPhilips-MBP:~ Parthenon$

Jestem wyłącznym właścicielem tego komputera i jest to jedyne konto na nim. Wydaje się, że jest to problem podczas aktualizacji do Pythona 3.4, wydaje się, że nic nie jest we właściwym miejscu, virtualenv nie idzie tam, gdzie się spodziewam itp.

Phil Andrews
źródło
Czy nazwa twojego konta to Philip?
komaromy
Właśnie zauważyłem, że dzieje się to wczoraj podczas używania pip na mojej własnej maszynie, co masz na myśli mówiąc, że virtualenv nie idzie tam, gdzie się tego spodziewasz?
Padraic Cunningham,
Zainstalowałem Pythona 3.4 na moim komputerze, ale kiedy uruchamiam go na moim terminalu, nadal działa on w wersji 2.7, nawet po przejściu całego procesu instalacji. Wspomniałem tylko o virtualenv, ponieważ zazwyczaj spodziewałbym się znaleźć go w Library / Python / 3.4, ale nie ma biblioteki / Python / 3.4
Phil Andrews
musisz użyć czegoś takiego jak python3 lub python3.4, aby użyć interpretera python3, ponownie otwierane elementy to tylko ustawienie, ubuntu ma tę samą opcję.
Padraic Cunningham,
@PadraicCunningham czy masz ten sam problem z pip? Czy ostatnio uaktualniłeś do Yosemite?
Phil Andrews,

Odpowiedzi:

127

Widziałem również tę zmianę na moim Macu, kiedy przeszedłem z biegania pipdo sudo pip. Dodanie -Hdo sudo powoduje zniknięcie wiadomości. Na przykład

sudo -H pip install foo

man sudomówi mi, że -Hpowoduje sudoto ustawienie $HOMEna docelowych użytkowników (w tym przypadku root).

Wygląda więc na to, że pip patrzy $HOME/Library/Logi sudodomyślnie nie jest ustawiony $HOMEna /root/. Nic dziwnego ~/Library/Log, że jesteś Twoją własnością jako użytkownika, a nie jako root.

Podejrzewam, że to jakaś niedawna zmiana w pip. Uruchomię to sudo -Hna razie, aby obejść.

Von
źródło
18
Należy pamiętać, że użycie sudo pipjest całkowicie nieprawidłowe. Aby uzyskać więcej informacji, odwiedź stronę stackoverflow.com/questions/33004708/ ...
Mikko Ohtamaa
Miałem ten sam problem, ale tak, teraz muszę zainstalować używając flagi „-H”.
Malachi Bazar
62

Problem polega na tym, że w jakiś sposób zainstalowałeś w virtualenv za pomocą sudo. Prawdopodobnie przez przypadek. Oznacza to, że rootużytkownik przepisze dane pakietu Pythona, sprawiając, że cały plik jest własnością roota, a zwykły użytkownik nie może już zapisywać tych plików. Zwykle virtualenv powinien być używany i posiadany tylko przez zwykłego użytkownika systemu UNIX.

Możesz rozwiązać ten problem, zmieniając pakiet uprawnień do plików systemu UNIX na użytkownika. Próbować:

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

wtedy pippowinien móc ponownie zapisać te pliki.

Więcej informacji na temat zarządzania uprawnieniami do plików w systemie UNIX

Mikko Ohtamaa
źródło
Pip nadal pisze z błędem. Mam również podobne ostrzeżenie i moje uprawnienia są poprawne, OP w rzeczywistości nie używa virtualenv, więc miałoby sens, że globalne instalowanie pakietów wymagałoby sudo.
Padraic Cunningham,
1
@PadraicCunningham: Jeśli pip wyświetli błąd, że Twoje uprawnienia są nieprawidłowe, pokaż uprawnienia do plików, abyśmy mogli dowiedzieć się, co jest z nimi nie tak. W przeciwnym razie pomoc byłaby strzałem w ciemno.
Mikko Ohtamaa
Również proponuję otworzyć kolejne pytanie, ponieważ problem może być różny, co jego autor ma
Mikko Ohtamaa
Używając własnej nazwy użytkownika, otrzymałem błąd: Wejście: sudo chown -R NAZWA UŻYTKOWNIKA / Users / NAZWA UŻYTKOWNIKA / Library / Logs / pip Wyjście: chown: / Users /
NAZWA UŻYTKOWNIKA
61

pip install --user <package name> (nie potrzeba sudo) działało dla mnie z bardzo podobnym problemem.

Safwan
źródło
Musisz podać co najmniej jedno wymaganie, aby zainstalować (patrz „pip help install”)
Amir,
0

podstawowa informacja

  • system: mac os 18.0.0
  • aktualny użytkownik: yutou

klucz

  1. dodaj bieżące konto do grupy kół
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. zmodyfikuj tryb pakietu Pythona do 775.
chmod -R 775 ${this_is_your_python_package_path}

cała rzecz

  • kiedy python3 jest dobrze skompilowany, informacja jest taka, jak w pytaniu.
  • Próbuję użyć pip3 install requestsi otrzymałem:
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'
  • więc ja cd /usr/local/python3/lib/python3.6/site-packages, wtedy ls -ali otrzymałem:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

kiedy to zobaczyłem, zrozumiałem, że makedirs to czynność zapisu, ale tryb żądań drwxrwxr-x wyświetlany tylko użytkownik root może zapisać plik żądań. Jeśli dodasz yutou ( whoami) do koła grupowego i zmodyfikujesz pakiet, aby koło grupy mogło pisać, wtedy mogę pisać i problem został rozwiązany.

Jak dodać yutou do koła grupowego? + wykryj koło grupowe, sudo dscl . -list /groups GroupMembershipznajdziesz:

wheel                    root

koło grupy tylko jeden element główny. + Dodaj yutou do koła grupowej sudo dscl . -append /Groups/wheel wheel yutou. + Sprawdzenie, sudo dscl . -list /groups GroupMembership:

wheel                    root yutou

zmodyfikuj tryb pakietu Pythona

chmod -R 775 /usr/local/python3/lib/python3.6
kougazhang
źródło
0

Jeśli zmienisz zmienną $ PATH, może to również spowodować problem. Jeśli myślisz, że to może być problem, sprawdź swój ~ / .bash_profile lub ~ / .bashrc

jeffhale
źródło