Próbuję zainstalować Scrapy Python Framework w OSX 10.11 (El Capitan) przez pip. Skrypt instalacyjny pobiera wymagane moduły iw pewnym momencie zwraca następujący błąd:
OSError: [Errno 1] Operation not permitted: '/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
Próbowałem dezaktywować funkcję rootowania w OSX 10.11 za pomocą polecenia:
sudo nvram boot-args="rootless=0";sudo reboot
ale nadal pojawia się ten sam błąd po ponownym uruchomieniu komputera.
Wszelkie wskazówki lub pomysły od moich znajomych StackExchangers?
Jeśli to pomaga, pełne dane wyjściowe skryptu są następujące:
sudo -s pip install scrapy
Collecting scrapy
Downloading Scrapy-1.0.2-py2-none-any.whl (290kB)
100% |████████████████████████████████| 290kB 345kB/s
Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): queuelib in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from scrapy)
Collecting w3lib>=1.8.0 (from scrapy)
Downloading w3lib-1.12.0-py2.py3-none-any.whl
Collecting lxml (from scrapy)
Downloading lxml-3.4.4.tar.gz (3.5MB)
100% |████████████████████████████████| 3.5MB 112kB/s
Collecting Twisted>=10.0.0 (from scrapy)
Downloading Twisted-15.3.0.tar.bz2 (4.4MB)
100% |████████████████████████████████| 4.4MB 94kB/s
Collecting six>=1.5.2 (from scrapy)
Downloading six-1.9.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from Twisted>=10.0.0->scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from zope.interface>=3.6.0->Twisted>=10.0.0->scrapy)
Installing collected packages: six, w3lib, lxml, Twisted, scrapy
Found existing installation: six 1.4.1
DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling six-1.4.1:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/basecommand.py", line 223, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/commands/install.py", line 299, in run
root=options.root_path,
File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_set.py", line 640, in install
requirement.uninstall(auto_confirm=True)
File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_install.py", line 726, in uninstall
paths_to_remove.remove(auto_confirm)
File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_uninstall.py", line 125, in remove
renames(path, new_path)
File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/utils/__init__.py", line 314, in renames
shutil.move(old, new)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move
copy2(src, real_dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
copystat(src, dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
python
macos
python-2.7
scrapy
Luis U.
źródło
źródło
Odpowiedzi:
Myślę też, że absolutnie nie jest konieczne rozpoczęcie hakowania OS X.
Byłem w stanie to rozwiązać, robiąc
Wygląda na to, że korzystanie z python / pip dostarczanego z nowym El Capitan ma pewne problemy.
źródło
brew install python3
rozwiązać ten problem, ponieważ w nowszych systemach python3 jest teraz domyślnym pythonem.Zrobiłby lewę.
Źródło: github.com/pypa/pip/issues/3165
źródło
sudo pip install --ignore-installed awscli
ImportError: cannot import name xmlrpc_client
--ignore-installed
Flaga zrobiła lewę dla AWS Elastic Beanstalk Cli również dla mnie. Wreszcie ...sudo pip install --ignore-installed scrapy
.Jak powiedzieli inne odpowiedzi, wynika to z nowej ochrony integralności systemu, ale uważam, że inne odpowiedzi są nadmiernie skomplikowane.
Jeśli chcesz użyć tego pakietu tylko u bieżącego użytkownika, powinieneś być w stanie zainstalować go dobrze, bez konieczności wyłączania SIP, za pomocą
--user
flagi. Lubię to:źródło
sudo pip install mkvirtualenv --ignore-installed six
działa zgodnie z oczekiwaniami, umieszczając virtualenvwrapper.sh w / usr / local / binWysoko głosowane odpowiedzi nie działały dla mnie, wydaje się, że działają dla użytkowników El Capitan. Ale dla użytkowników systemu MacOS Sierra spróbuj wykonać następujące czynności
brew install python
sudo pip install --user <package name>
źródło
sudo pip install --user <package name>
pracował dla mnie, bez konieczności ponownej instalacji pytonaOstrzeżenia
Proponuję bardzo silnie na modyfikację systemu Pythona na Mac; może wystąpić wiele problemów.
Twój konkretny błąd pokazuje, że instalator ma problemy z rozwiązywaniem zależności dotyczących Scrapy bez wpływu na bieżącą instalację Pythona. System używa Pythona do szeregu podstawowych zadań, dlatego ważne jest, aby instalacja systemu była stabilna i pierwotnie zainstalowana przez Apple.
Skorzystałbym też z wszystkich innych możliwości, zanim obejdę wbudowane zabezpieczenia.
Rozwiązania do zarządzania pakietami:
Najpierw sprawdź narzędzie do wirtualizacji w języku Python, takie jak virtualenv ; pozwoli ci to bezpiecznie eksperymentować.
Innym przydatnym narzędziem do używania języków i oprogramowania bez konfliktu z systemem Mac OS jest Homebrew . Podobnie jak MacPorts lub Fink , Homebrew jest menedżerem pakietów dla komputerów Mac i jest przydatny do bezpiecznego wypróbowania wielu innych języków i narzędzi.
Instalacje oprogramowania „Rzuć własne”:
Jeśli nie podoba Ci się podejście do menedżera pakietów, możesz użyć
/usr/local
ścieżki lub utworzyć/opt/local
katalog do zainstalowania alternatywnej instalacji Pythona i naprawić ścieżki w swoim.bashrc
. Pamiętaj, że musisz włączyć root dla tych rozwiązań.Jak to zrobić mimo to:
Jeśli absolutnie musisz wyłączyć kontrolę bezpieczeństwa (i mam szczerą nadzieję, że dotyczy to czegoś innego niż bałagan w językach systemowych i zasobach), możesz ją tymczasowo wyłączyć i ponownie włączyć, korzystając z niektórych technik opisanych w tym poście dotyczących wyłączania systemu Ochrona integralności .
źródło
To załatwiło sprawę:
źródło
sudo pip install virtualenvwrapper --ignore-installed six
również, unikając tego błędu:OSError: [Errno 1] Operation not permitted: '/tmp/..../System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
Należy wyłączyć „Ochrona integralności systemu”, która jest nową funkcją El Capitan.
Po pierwsze, powinieneś uruchomić komendę rootless config na swoim terminalu
Następnie należy uruchomić poniższe polecenie na terminalu partycji odzyskiwania (Recovery OS)
Właśnie tak rozwiązałem mój problem. Nie jestem pewien, czy pierwsza część jest konieczna. Spróbuj, jak chcesz.
--OSTRZEŻENIE
Powinieneś włączyć SIP ponownie, gdy wszystko zadziała;
Wystarczy ponownie uruchomić komputer w trybie odzyskiwania i uruchomić w terminalu
csrutil: Konfigurowanie ochrony integralności systemu
źródło
Próbowałem zainstalować AWS przez pip w El Capitan, ale pojawia się ten błąd
Tutaj znalazłem odpowiedź
Mi to pasuje :)
źródło
Otrzymałem ten sam błąd na moim MacOS Sierra. Wykonałem te kroki i udało mi się zainstalować pakiet scarpy.
źródło
To załatwiło sprawę.
sudo pip install - złom instalowany przezignore
źródło
Wypróbowałem kombinację niektórych odpowiedzi i to ostatecznie zadziałało:
sudo -H pip install --upgrade --ignore-installed awsebcli
Twoje zdrowie
źródło
zainstaluj ponownie python:
Spróbuj ponownie:
działa dla mnie, mam nadzieję, że może pomóc
źródło
Uruchom ponownie komputer Mac -> przytrzymaj klawisz „Command + R” po gongu uruchamiania -> Otwiera Narzędzia OS X -> Otwórz Terminal i wpisz „csrutil wył.” -> Uruchom ponownie OS X -> Otwórz Terminal i zaznacz „csrutil status”
źródło
To polecenie działałoby idealnie: D
sudo -H pip install - aktualizacja nazwa_pakietu --ignore-install six
źródło
Czasami takie zachowanie można osiągnąć, jeśli spróbujesz zainstalować bibliotekę python3 w folderze python2 przy użyciu pip zamiast pip3.
źródło
2)
sudo C_INCLUDE_PATH = / Aplikacje / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.11.sdk / usr / include / libxml2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX .platform / Developer / SDKs / MacOSX10.11.sdk / usr / include / libxml2 / libxml: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/ obejmują złomowanie instalacji pip - instalowane sześć sześć
3. - następnie usuń starą szóstkę, zainstaluj ją ponownie sudo rm -rf /Library/Python/2.7/site-packages/six* sudo rm -rf /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/ lib / python / six * sudo pip install six
4. - następnie ustaw z powrotem csrutil Enable restart
- gówno działa teraz
źródło
to działa dla mnie:
źródło
Brakowało mi zależności gdzie indziej wzdłuż linii, więc zainstalowałem inne wymagania dla tego projektu:
źródło