pip / python: normalnych pakietów stron nie można zapisywać

11

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, pipinstaluje pakiety na ~/Library/Python/3.7/site-packages.

Kiedy which python3dostanę usr/bin/python3. Kiedy to robię pip3 install <package>, otrzymuję: Defaulting to user installation because normal site-packages is not writeableA 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, pipnie można zainstalować w Pythonie „podstawowym” i nie pythonmogą 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 ( venvjasne, ale niektóre pakiety chcę globalne (jak jupyter).

Dzięki

małe litery 00
źródło
Mam również ten problem. Zastanawiam się, czy ma to związek z końcem obsługi Python 2.7
Chris Dutrow
Mam ten sam problem
Mahyar Maleki,
1
Czy na pewno używasz prawidłowego pip? Co zrobić, jeśli korzystasz z dużo bezpieczniejszego python -m pip install ....?
Tom de Geus
@TomdeGeus: Cóż, python3 -m pip install ...w tym przypadku, ale tak, gdy w grę wchodzi wiele wersji Pythona, znacznie bezpieczniej jest wywoływać pipza pomocą metody „modułu wykonawczego”, więc wiesz, że używasz oczekiwanego pliku wykonywalnego Python.
ShadowRanger
Aby to naprawić, skończyłem odinstalowywanie python3 (wcześniej zainstalowany z brew) i użycie pyenv do zainstalowania python3. Teraz wszystko działa. Postępowałem zgodnie z tym przewodnikiem: opensource.com/article/19/5/python-3-default-mac (przejdź do ostatniej sekcji)
Arseny Levin

Odpowiedzi:

2

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) lub venv(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_packageskatalog, 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.

Chris Johnson
źródło
0

Miałem ten sam problem w nowej instalacji Debiana 9.12. Ponowne uruchomienie mojego serwera rozwiązało problem.

Chris S.
źródło