"OSError: [Errno 1] операция не разрешена" при установке Scrapy в OSX 10.11 (El Capitan) (защита целостности системы)
Я пытаюсь установить Scrapy Python framework в OSX 10.11 (El Capitan) через pip. Сценарий установки загружает необходимые модули и в какой-то момент возвращает следующую ошибку:
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'
Я попытался отключить функцию rootless в OSX 10.11 с помощью команды:
sudo nvram boot-args="rootless=0";sudo reboot
но я все равно получаю ту же ошибку при перезагрузке машины.
любая подсказка или идея от моих коллег StackExchangers?
Если это поможет, то полный сценарий вывод следующий:
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'
18 ответов:
Я также думаю, что это абсолютно не обязательно, чтобы начать взлом OS X.
я смог решить это делаю
brew install python
Кажется, что использование python / pip, который поставляется с новым El Capitan, имеет некоторые проблемы.
pip install --ignore-installed six
будет делать трюк.
Источник:github.com/pypa/pip/issues/3165
Если вы собираетесь использовать этот пакет только в текущем пользователе, вы должны иметь возможность установить его просто отлично, без необходимости отключать SIP, используя
--user
флаг. Вот так:sudo pip install --user packagename
ответы с высоким голосованием не сработали для меня, похоже, это работает для пользователей EI Capitan. Но для пользователей MacOS Sierra попробуйте выполнить следующие действия
brew install python
sudo pip install --user <package name>
предупреждения
Я бы предложил очень сильно против изменения системы Python на Mac; есть множество проблем, которые могут возникнуть.
ваша конкретная ошибка показывает, что у установщика есть проблемы с разрешением зависимостей для Scrapy без влияния на текущую установку Python. Система использует Python для ряда важных задач, так важно сохранить стабильность установки системы и как изначально установленным компанией Apple.
Я бы исчерпать все другие возможности перед обходом встроенной безопасности.
Решения Диспетчера Пакетов:
пожалуйста, загляните в инструмент виртуализации Python, такой как virtualenv во-первых, это позволит вам смело экспериментировать.
еще один полезный инструмент для использования языков и программного обеспечения без конфликта с вашей Mac OS является доморощенного. Как MacPorts или Финк,Homebrew - это менеджер пакетов для Mac, и полезно для безопасного использования многих других языков и инструментов.
" сверните ваши собственные " установки программного обеспечения:
Если вам не понравился подход менеджера пакетов, вы можете использовать
/usr/local
путь или создать/opt/local
каталог для установки альтернативной установки Python и исправления ваших путей в вашем.bashrc
. Обратите внимание, что вам нужно будет включить root для этого решения.как это сделать так:
если вы абсолютно должны отключить проверку безопасности (и я искренне надеюсь, что это для чего-то другого, чем возиться с системными языками и ресурсами), вы можете отключить его временно и повторно включить его, используя некоторые из методов в этом посте о том, как Отключить Целостность Системы-Защита.
вы должны отключить "защиту целостности системы", которая является новой функцией в El Capitan.
во-первых, вы должны запустить команду для rootless config на вашем терминале
# nvram boot-args="rootless=0" # reboot
затем, вы должны запустить следующую команду в терминале раздел восстановления (Восстановление операционной системы)
# csrutil disable # reboot
Я только что решил свою проблему вот так. Я не уверен, что первая часть необходима. Попробуйте, как вам нравится.
--предупреждение
вы следует включить SIP снова после того, как все работает;
Просто перезагрузите снова в режим восстановления и запустите в терминале
# csrutil enable
csrutil: Настройка Защиты Целостности Системы
Я пытался установить AWS через pip в El Capitan, но эта ошибка появляется
OSError: [Errno 1] операция не разрешена: '/var/folders/wm/jhnj0g_s16gb36y8kwvrgm7h0000gp/T/pip-wTnb_D-uninstall/System/Library/Frameworks/Python.framework / Versions/2.7/Extras/lib/python / six-1.4.1-py2.7.яйцо-инфо'
Я нашел ответ!--8-->здесь
sudo -H pip install awscli --upgrade --ignore-installed six
это работает для меня :)
Я получал ту же ошибку на моем MacOS Sierra. Я выполнил эти шаги и успешно смог установить пакет scarpy.
1. sudo pip install --ignore-installed six 2. sudo pip install --ignore-installed scrapy MacBook-Air:~ shree$ scrapy version Scrapy 1.4.0
установите python еще раз:
brew install python
попробуйте еще раз:
sudo pip install scrapy
работает для меня, надеюсь, это может помочь
попробовал комбинацию некоторых ответов, и это в конечном итоге сработало:
sudo -H pip install --upgrade --ignore-installed awsebcli
Ура
перезагрузите Mac - > удерживайте "Command + R" после сигнала запуска - > открывает OS X Utilities -> откройте терминал и введите "csrutil disable" - > перезагрузите OS X -> откройте терминал и проверьте"csrutil status"
эта команда будет работать отлично: D
судо -ч пункт Установить имя_пакета --модернизация --игнорировать-установлены шесть
иногда такое поведение может быть достигнуто при попытке установить python3 lib в папку python2 с помощью pip вместо pip3.
- -- закрыть SIP(защита целостности системы) -- затем перезагрузитесь, используйте command +R для входа в режим отладки, затем выберите терминал: csrutil отключить перезагрузка
2.
sudo C_INCLUDE_PATH= / Applications / Xcode.приложение / содержание / разработчик / платформы / MacOSX.платформа/разработчик/пакеты SDK/MacOSX10.11.sdk / usr / include / libxml2 :/Применения/Xcode.приложение / содержание / разработчик / платформы / MacOSX.платформа/разработчик/пакеты SDK/MacOSX10.11.sdk / usr / include / libxml2 / libxml :/Применения/Xcode.приложение / содержание / разработчик / платформы / MacOSX.платформа/разработчик/пакеты SDK/MacOSX10.11.sdk / usr / include pip install scrapy --ignore-установлено шесть
3. -- затем удалите старые шесть, установите его снова sudo rm-rf /Библиотека / Python / 2.7 / site-packages / six* sudo rm-rf/System/Library/Framework / Python.рамки/версии/2.7/дополнения в/lib/Python и шесть* sudo pip установить шесть
4. -- тогда поставь его обратно csrutil включить перезагрузка
-- дерьмово работает сейчас