Mam nowego Macbooka - użytkownik go zainstalował, a następnie zainstalowałem nowego użytkownika (mojego), przyznałem uprawnienia administratora i usunąłem starego. Jestem na OS Catalina.
Od czasu instalacji miałem kilka problemów z uprawnieniami. VSCode nie może znaleźć Notatnika Jupyter, pip
instaluje pakiety na ~/Library/Python/3.7/site-packages
.
Kiedy which python3
dostanę usr/bin/python3
. Kiedy to robię pip3 install <package>
, otrzymuję: Defaulting to user installation because normal site-packages is not writeable
A potem mówi, że został już zainstalowany, mimo że nie mogę uzyskać do niego dostępu, kiedy to zrobię import <package>
.
Wydaje się jasne, że jest to problem z uprawnieniami, pip
nie można zainstalować w Pythonie „podstawowym” i nie python
mogą znaleźć tego, w co zainstalowałem ~/Library/Python/3.7/site-packages
.
Próbowałem ponownie zainstalować system operacyjny, ale ponieważ nie wykonałem czystej instalacji, nic to nie zmieniło. czego mi brakuje? Jak dokładnie mogę naprawić uprawnienia? Gdzie chcę zainstalować pakiety ( venv
jasne, ale niektóre pakiety chcę globalne (jak jupyter
).
Dzięki
pip
? Co zrobić, jeśli korzystasz z dużo bezpieczniejszegopython -m pip install ....
?python3 -m pip install ...
w tym przypadku, ale tak, gdy w grę wchodzi wiele wersji Pythona, znacznie bezpieczniej jest wywoływaćpip
za pomocą metody „modułu wykonawczego”, więc wiesz, że używasz oczekiwanego pliku wykonywalnego Python.Odpowiedzi:
Najlepiej nie używać bezpośrednio Python dostarczonego przez system. Zostaw ten w spokoju, ponieważ system operacyjny może go zmienić w niepożądany sposób, jak się przekonałeś.
Najlepszą praktyką jest konfigurowanie własnych wersji (wersji) Pythona i zarządzanie nimi dla poszczególnych projektów za pomocą
virtualenv
(dla Python 2) lubvenv
(dla Python 3). Eliminuje to wszelką zależność od systemowej wersji języka Python, a także izoluje każdy projekt od innych projektów na komputerze.Każdy projekt może w razie potrzeby mieć inną wersję punktu Pythona i pobiera własny
site_packages
katalog, więc biblioteki instalowane przez pip mogą również mieć różne wersje według projektu. Takie podejście jest głównym sposobem na uniknięcie problemów.źródło
Miałem ten sam problem w nowej instalacji Debiana 9.12. Ponowne uruchomienie mojego serwera rozwiązało problem.
źródło