Kiedy biegam:
sudo pip install ipython
Otrzymuję następujący błąd
OSError: [Errno: 1] Operacja niedozwolona: „/System/Library/Frameworks/Python.framework/Versions/2.7/share”
Ostatnia wykonana komenda próbuje utworzyć katalog podany powyżej.
Ponadto poniższe polecenie nie instaluje iPythona bez podania żadnych błędów.
sudo pip install --user python
(Korzystam z systemu Mac OS X El Capitan na wypadek, gdyby inni użytkownicy tego systemu operacyjnego zobaczyli ten sam problem).
pip
ipython
failed-installation
osx-elcapitan
Milad M.
źródło
źródło
$PATH
, abyś mógł wywoływać pliki wykonywalne dla zainstalowanych pakietów --user. stackoverflow.com/a/47102398/117471sudo
z--user
. To, co--user
robi, jest instalowane,~/Library
a/Library
nie nie musisz go używać,sudo
aby zainstalować tam. Ale po zainstalowaniu z programemsudo
wszystkie katalogi i pliki są własnościąroot
. Następnie musiszsudo
zrobić z nimi cokolwiek innego. Co z kolei będzie wymagało użyciasudo
do innych rzeczy, do których nie powinieneś go używać. Wtedy nawet uczciwy błąd może przejść od wyrzucenia błędu do zniszczenia danych.Odpowiedzi:
Mówienie instrukcji
sudo pip install
jest z natury błędne.Jeśli istnieje jakikolwiek tutorial, który mówi, że powinieneś to zrobić,
sudo pip
zgłoś błąd dotyczący tego pakietu. Autor dezedukuje społeczność Pythona, ponieważ czas okazałsudo pip
się zepsutą praktyką.OSX El Capitan wprowadził mechanizmy zapobiegające uszkodzeniu plików systemu operacyjnego .
/System/Library/Frameworks/Python.framework/Versions/2.7/share
jest jedną z chronionych lokalizacji. Zwykły użytkownik nie ma powodu, aby umieszczać lub zapisywać tam jakiekolwiek pliki . Dzieje się tak, ponieważ sam system operacyjny opiera się na tych plikach isudo pip
, z całą siłą podaną powyżej, bezwarunkowo je nadpisuje. Zwykle złe rzeczy się nie zdarzają, ale są szanse. Apple chce chronić użytkowników swoich systemów operacyjnych przed przypadkowym zablokowaniem instalacji.Zamiast tego musisz zainstalować pakiet Pythona, taki jak IPython, lokalnie w folderze domowym użytkownika . Najłatwiej jest stworzyć środowisko wirtualne , aktywować je, a następnie uruchomić pip w środowisku wirtualnym.
Przykład:
Więcej informacji
Oficjalny samouczek instalacji pakietu Pythona .
Jak tworzyć środowiska wirtualne .
Alternatywnie, można to zrobić
pip install --user
. Ale znowu nie jest potrzebne sudo i musisz ręcznie ustawićPATH
zmienną środowiskową.źródło
easy_install
stackoverflow.com/a/33463702/3078330pip install virtualenv
nie powinny być już potrzebne w Pythonie 3.4+, ponieważ są dostarczane z wbudowanympython -m venv
odpowiednikiem virtualenv. docs.python.org/3/library/venv.htmlpip install --user IPython
w tym nie pomagam. Ponadtopip install --user IPython
nie udaje się umieścićipython
polecenia w$PATH
(przynajmniej na moim komputerze).Miałem te same problemy, ale użycie
easy_install "module"
rozwiązało problem za mnie.Nie jestem pewien, dlaczego, ale pip i easy_install używają różnych lokalizacji instalacji, a easy_install wybrała właściwe.
Edycja: bez ponownego sprawdzania, ale z powodu komentarzy; wydaje się, że różne instalacje (OSX i brew-installed) kolidują ze sobą, dlatego wspomniane narzędzia rzeczywiście wskazują różne lokalizacje (ponieważ należą do różnych instalacji). Rozumiem, że zwykle te narzędzia z jednego punktu instalacji do tego samego folderu.
źródło
easy_install
skonfigurowany inny?easy_install
dla nich wszystkich:easy_install-2.6
,easy_install-2.7
,easy_install-3.5
pip
ieasy_install
wskaż różne Pythona. Możesz to rozgryźć za pomocąwhich
polecenia UNIX, a następnie znaleźć właściwepip
polecenie.Powinieneś ponownie zainstalować Pythona:
Aby uzyskać napar, zobacz stronę główną piwa .
źródło
brew install python
wtedy myślę, żepip
jest już na miejscu. Po tympip
instalacja zadziałała (miałem podobne problemy z pozwoleniami i bilingiem pip podczas instalacji)pip install --ignore-installed six
To wystarczy, a następnie możesz wypróbować swoje pierwsze polecenie.
Via http://github.com/pypa/pip/issues/3165
źródło
pip install --ignore-installed setuptools
.Używany
pip3 install <package>
zamiast tego i rozwiązany problem z uprawnieniami zpip
.źródło
pip3
używa Pythona 3, który jest zwykle instalowany przez użytkownika. Z drugiej strony Python 2 (2.7) jest dostarczany z systemem macOS i jest chroniony, jak wyjaśnia najwyżej oceniana odpowiedź.TL; DR $ PATH fix
pip install --user package_name
do instalowania pakietu, który powinien zawierać pliki wykonywalne CLI.import package_name
lib/python/...
występuje w danych wyjściowych i zamień to wszystko nabin
$HOME/Library/Python/2.7/bin
Detale
Ze względu na nową ochronę integralności systemu w macOS 10.11 El Capitan nie możesz już tego zrobić
sudo pip install
. Nie będziemy tutaj dyskutować o zaletach tego.Inna odpowiedź wyjaśnia, że powinieneś,
pip install --user
co jest poprawne. Ale wysłali cię do tylnych zaułków, aby dowiedzieć się, co z tym zrobić$PATH
, aby uzyskać dostęp do zainstalowanych plików wykonywalnych. Na szczęście rozwiązałem już podobną potrzebę na niepowiązane pytanie .Oto zapis tego, jak rozwiązałem problem w jednym z moich systemów. Włączam to wszystko, a nie tylko to,
$PATH
co działało dla mnie, ponieważ Twój system może różnić się od mojego. Ten proces powinien działać dla każdego.źródło
Ten sam błąd
i tutaj używam
--user
bez,sudo
aby rozwiązać ten problemMam nadzieję, że pomoże to komuś, kto napotka podobny problem!
źródło
sudo
z--user
. To, co--user
robi, jest instalowane,~/Library
a/Library
nie nie musisz go używać,sudo
aby zainstalować tam. Ale po zainstalowaniu z programemsudo
wszystkie katalogi i pliki są własnościąroot
. Następnie musiszsudo
zrobić z nimi cokolwiek innego. Co z kolei będzie wymagało użyciasudo
do innych rzeczy, do których nie powinieneś go używać. Wtedy nawet uczciwy błąd może przejść od wyrzucenia błędu do zniszczenia danych.Miałem te same problemy. Jak wspominali inni, nie uruchamiaj pip install z sudo. Biegać
i napraw ostrzeżenia i powinieneś być w stanie kontynuować instalację pip.
źródło
Trudno jest zmusić pip do pracy na El Capitan z kilku powodów:
/System/Library/
. El Capitan blokuje to, co jest błędem, na który napotykasz./System/Library/
. pip często chce je ulepszyć, ale nie może tego zrobić w El Capitan./System/Library/
wyżej w kolejności wyszukiwania w Pythonie niż/Library/Python/2.7/site-packages
(ogólnosystemowa lokalizacja pakietu pythona), więc nawet jeśli uda ci się zainstalować nowsze wersje niektórych pakietów, stare nadal są ładowane, łamiąc niektóre zależności.Wszystkie te rozwiązania można obejść pod adresem https://apple.stackexchange.com/a/223163/143849 . Ale może najlepiej będzie, jeśli zainstalujesz własną wersję Pythona za pomocą standardowego instalatora Pythona, Homebrew lub Anaconda.
źródło
Myślę, że masz jakiś konflikt z innym pakietem. Dla mnie to było
six
. Musisz więc użyć takiego polecenia:lub
pip install --ignore-installed six
źródło
six
.W pełni zgadzam się z Mikko, ale jeśli nadal chcesz to zrobić, oto sposób:
csrutil disable
źródło
Mam python2.7 zainstalowany przez brew i następujące rozwiązania rozwiązały mój problem
napar zainstaluj numpy
Instaluje python3, ale nadal działa i konfiguruje go również dla wersji 2.7.
źródło