Python &引用;OSError:[Errno 1]不允许操作";在OSX 10.11(El Capitan)中安装Scrapy时(系统完整性保护)

Python &引用;OSError:[Errno 1]不允许操作";在OSX 10.11(El Capitan)中安装Scrapy时(系统完整性保护),python,macos,python-2.7,scrapy,Python,Macos,Python 2.7,Scrapy,我正试图通过pip在OSX 10.11(El Capitan)中安装Scrapy Python框架。安装脚本将下载所需的模块,并在某些时候返回以下错误: 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' 我

我正试图通过pip在OSX 10.11(El Capitan)中安装Scrapy Python框架。安装脚本将下载所需的模块,并在某些时候返回以下错误:

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'
我已尝试使用以下命令停用OSX 10.11中的无根功能:

sudo nvram boot-args="rootless=0";sudo reboot
但是当机器重新启动时,我仍然会遇到同样的错误

我的同伴有什么线索或想法吗

如果有帮助,完整脚本输出如下所示:

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'

警告

我强烈反对在Mac上修改系统Python;可能会出现许多问题

您的特定错误表明安装程序在解决Scrapy的依赖项时遇到问题,而不会影响当前的Python安装。该系统使用Python完成许多基本任务,因此保持系统安装的稳定性和最初由Apple安装的稳定性非常重要

在绕过内置安全性之前,我也会用尽所有其他可能性

软件包管理器解决方案:

请查看Python虚拟化工具,如first;这将允许您安全地进行实验

另一个使用语言和软件而不与Mac OS冲突的有用工具是。与或类似,Homebrew是Mac的软件包管理器,用于安全地尝试许多其他语言和工具

“滚动您自己的”软件安装:

如果您不喜欢包管理器方法,可以使用
/usr/local
路径或创建一个
/opt/local
目录来安装备用Python安装,并在
.bashrc
中修复路径。请注意,您必须为这些解决方案启用root

怎么做:

如果您绝对必须禁用安全检查(我真诚地希望这不是为了干扰系统语言和资源),您可以暂时禁用它,然后使用本文介绍的一些技术重新启用它。

您应该禁用“系统完整性保护”这是El Capitan的新功能

首先,应该在终端上运行无根配置命令

# nvram boot-args="rootless=0"
# reboot
然后,您应该在恢复分区的终端(恢复操作系统)上运行下面的命令

我刚刚就这样解决了我的问题。 我不确定第一部分是否必要。你想怎么试就怎么试

--警告

一切正常后,应再次启用SIP

只需重新启动进入恢复模式并在终端中运行即可

# csrutil enable
csrutil:

我会成功的


来源:

重启Mac->启动钟声后按住“Command+R”->打开OS X实用程序->打开终端并键入“csrutil disable”->重启OS X->打开终端并检查“csrutil status”

我也认为绝对没有必要开始攻击OS X

我通过一个简单的步骤解决了这个问题

brew install python
使用新El Capitan附带的python/pip似乎有一些问题

  • --关闭SIP(系统完整性保护) --然后重新启动,使用command+R进入调试模式,然后选择终端: csrutil禁用 重新启动
  • 二,

    sudo C_INCLUDE_PATH=/Applications/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/include pip安装scrapy——忽略已安装的六个

    三,。 --然后拆下旧的六号,重新安装 sudorm-rf/Library/Python/2.7/site-packages/six* sudorm-rf/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/Python/six* sudopip安装六个

    四,。 --然后把它放回去 csrutil使能 重新启动


    --蹩脚的作品现在

    我试图在El Capitan通过pip安装AWS,但出现了这个错误

    操作错误:[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 pip install scrapy --ignore-installed six
    

    这对我起了作用


    sudopip安装——忽略已安装的scrapy

    正如其他答案所说,这是因为新的系统完整性保护,但我相信其他答案过于复杂

    如果您只想在当前用户中使用该软件包,那么您应该能够通过使用
    --user
    标志来安装它,而无需禁用SIP。像这样:

    sudo pip install --user packagename
    
    再次安装python:

    brew安装python

    请再试一次:

    sudo-pip-install-scrapy

    对我有用,希望它能帮助我

    它对我有用:

    pip install scrapy --user -U
    

    我在这条线路的其他地方缺少一个依赖项,因此我为项目安装了以下其他需求:

    pip install --user -r requirements.txt
    

    这个命令可以很好地工作:D


    sudo-H pip安装--升级包名称--忽略已安装的六个

    我在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
    

    尝试了一些答案的组合,最终奏效:

    sudo-H pip安装--升级--忽略已安装的awsebcli


    干杯

    投票率高的答案对我不起作用,似乎对El Capitan用户起作用。但对于MacOS Sierra用户,请尝试以下步骤

  • brew安装python
  • sudo-pip安装--用户

  • 如果您尝试安装pyth,有时可能会出现这种行为
    pip install scrapy --user -U
    
    pip install --user -r requirements.txt
    
    1. sudo pip install --ignore-installed six
    2. sudo pip install --ignore-installed scrapy
    
    MacBook-Air:~ shree$ scrapy version
    Scrapy 1.4.0