Ответ 1
Я также думаю, что совершенно не нужно начинать взламывать OS X.
Я смог решить это, выполнив
brew install python
Кажется, что с использованием python/pip, который поставляется с новым El Capitan, есть некоторые проблемы.
Я пытаюсь установить Scrapy Python в OSX 10.11 (El Capitan) через pip. Установка script загружает необходимые модули и в какой-то момент возвращает следующую ошибку:
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?
Если это помогает, полный вывод script следующий:
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'
Я также думаю, что совершенно не нужно начинать взламывать 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
Предупреждения
Я бы предложил очень сильно против изменения системы Python на Mac; существует множество проблем, которые могут возникнуть.
Ваша конкретная ошибка показывает, что установщик имеет проблемы с разрешением зависимостей для Scrapy, не влияя на текущую установку Python. Система использует Python для ряда важных задач, поэтому важно поддерживать стабильную установку системы и, как первоначально установлено Apple.
Я бы также исчерпал все другие возможности, прежде чем обходить встроенную безопасность.
Решения для диспетчера пакетов:
Сначала зайдите в инструмент виртуализации Python, например virtualenv; это позволит вам безопасно экспериментировать.
Другим полезным инструментом для использования языков и программного обеспечения без конфликта с вашей Mac OS является Homebrew. Как MacPorts или Fink, Homebrew - это менеджер пакетов для Mac, и полезно для безопасного использования множества других языков и инструментов.
"Сверните свои собственные" установки программного обеспечения:
Если вам не нравится подход менеджера пакетов, вы можете использовать путь /usr/local
или создать каталог /opt/local
для установки альтернативной установки Python и исправить свои пути в .bashrc
. Обратите внимание, что вам нужно включить root для этих решений.
Как это сделать в любом случае:
Если вам абсолютно необходимо отключить проверку безопасности (и я искренне надеюсь, что это что-то другое, кроме как возиться с системными языками и ресурсами), вы можете временно отключить его и снова включить его, используя некоторые из методы в этом сообщении о том, как Отключить защиту целостности системы.
Это сделало трюк для меня:
sudo pip install scrapy --ignore-installed six
Вы должны отключить "Защита целостности системы", которая является новой функцией El Capitan.
Сначала вы должны запустить команду для rootless config на вашем терминале
# nvram boot-args="rootless=0"
# reboot
Затем вы должны запустить приведенную ниже команду на терминале раздела восстановления (Recovery OS)
# 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.egg- Информация о '
Я нашел ответ здесь
sudo -H pip install awscli --upgrade --ignore-installed six
Это работает для меня:)
Высокие голосовые ответы не сработали для меня, похоже, для пользователей EI Capitan. Но для пользователей MacOS Sierra выполните следующие шаги.
brew install python
sudo pip install --user <package name>
Это помогло мне.
sudo pip install - установка, установленная с помощью ловушки
Я получал ту же ошибку на моем MacOS Sierra. Я выполнил эти шаги и успешно смог установить скудный пакет.
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 установить python
попробуйте еще раз:
sudo pip install scrapy
работает для меня, надеюсь, что это поможет
Перезагрузите Mac → удерживайте клавишу "Command + R" после звукового сигнала запуска → Открывает OS X Utilities → Откройте терминал и введите "csrutil disable" → Перезагрузите OS X → Откройте терминал и проверьте "статус csrutil"
Эта команда будет работать отлично: D
sudo -H pip install --upgrade имя_компьютера - установленный сингл шесть
Пробовал комбинацию некоторых ответов, и это в конечном итоге сработало:
sudo -H pip install --upgrade --ignore-installed awsebcli
Приветствия
2.
sudo C_INCLUDE_PATH =/Приложения/Xcode.app/Содержание/Разработчик/Платформы/MacOSX.platform/Разработчик/SDK/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/include pip install scrapy - установленный сингл шесть
3. - затем удалите старые шесть, установите его снова 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. - затем установите его обратно csrutil enable перезагрузка
- теперь дерьмовые работы
Иногда такое поведение может быть достигнуто, если вы попытаетесь установить python3 lib в папку python2, используя pip вместо pip3.
У меня отсутствовала зависимость где-то еще вдоль линии, поэтому я установил другие требования для проекта следующим образом:
pip install --user -r requirements.txt
он работает для меня:
pip install scrapy --user -U