OSX 10.11 (El Capitan)에 Scrapy를 설치할 때 "OSError : [Errno 1] 작업이 허용되지 않습니다"(시스템 무결성 보호)


206

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

그러나 컴퓨터가 재부팅 될 때 여전히 동일한 오류가 발생합니다.

내 동료 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'


질문은 여기에서 논의됩니다 : apple.stackexchange.com/questions/209572/…
— hectorpal

어쩌면 당신은 비활성화 SIP없이 당신을 도와줍니다 : stackoverflow.com/a/32930419/3090526
— nvg58

5
pip를 사용하여 "virtualenvwrapper"를 설치하려고 할 때도 똑같은 문제가 있었지만이 명령은 저에게 효과적이었습니다. "sudo pip install --ignore-installed virtualenvwrapper"따라서 고통스럽지 않은 경우에도 적용 할 수 있습니다 원형
— 교차로

답변:


153

또한 OS X 해킹을 시작할 필요는 없다고 생각합니다.

나는 그것을하고 해결할 수있었습니다.

brew install python

새로운 El Capitan과 함께 제공되는 python / pip를 사용하는 데 문제가있는 것 같습니다.


2
나를 위해 일했고 다음 Python 2.7.X를 얻었습니다. 이 답변은 승리해야합니다
— Russell_A

3
이 엘 카피 탄 Mac 사용자를위한 최고의 답변입니다
— zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

당신은 그것을 올바르게 지적했습니다! 이 답변을 받아 들여야합니다!
— Muaaz salagar

그것은 나를 위해 그것을했다. (Sierra 10.13.6)
— Michael Guild

@codersofthedark brew install python3는 새로운 시스템에서 python3이 이제 기본 파이썬 이므로이 문제를 해결할 수 있습니다.
— Mario

399
pip install --ignore-installed six

트릭을 할 것입니다.

출처 : github.com/pypa/pip/issues/3165


51
이것은 파이썬 설치를 망설이지 않고 El Capitan에 awscli를 설치할 때 잘 작동했습니다.sudo pip install --ignore-installed awscli
— Luke

3
이 방법으로 설치할 때 scrapy를 가져올 수ImportError: cannot import name xmlrpc_client
— harinsa

3
--ignore-installedflag도 AWS Elastic Beanstalk Cli의 트릭을 수행했습니다. 마지막으로 ...
— 존 왕

1
이것은 나를 위해 잘 작동했습니다. 나는 이것이 정답이어야한다고 생각합니다.
— Paul Carlton

1
이것은에서 나를 위해 일했습니다 sudo pip install --ignore-installed scrapy.
— Sophia Feng

89

다른 답변에서 알 수 있듯이 새로운 시스템 무결성 보호로 인한 것이지만 다른 답변은 너무 복잡하다고 생각합니다.

현재 사용자에게만 해당 패키지를 사용하려는 경우 --user플래그 를 사용하여 SIP를 비활성화하지 않고도 패키지를 올바르게 설치할 수 있습니다 . 이처럼 :

sudo pip install --user packagename

2
이 다른 플래그가 어떻게 작동하는지는 확실하지 않지만이 답변은 나에게 가장 적합한 것으로 보입니다. (또한 효과가
— 있었습니다.)

@xdhmoore 감사합니다, 너무 하하 생각합니다. SIP를 비활성화하거나 새로운 파이썬이나 종속성이있는 혼란을 설치할 필요가 없습니다.
— dietbacon

mkvirtualenv의 경우, 예상 위치 / usr / local / bin에 패키지가 설치되지 않았습니다. 대신 sudo pip install mkvirtualenv --ignore-installed sixvirtualenvwrapper.sh를 / usr / local / bin에 배치하여 예상대로 작동
— Rob

@Rob 정말 그렇지 않습니다. --user 플래그는 현재 사용자에게만 설치되므로 사용자 별이 아닌 폴더에는 설치하지 않는 것이 좋습니다. 저에게이 명령은 .py 파일의 경우 "/Users/myusername/Library/Python/2.7/lib/python/site-packag‌es"및 "/Users/myusername/Library/Python/2.7/bin"에 패키지를 설치합니다. .sh 파일
— dietbacon 2016 년

1
이것은 rasa-nlu에서 나를 위해 일했습니다. sudo pip install --user rasa_nlu
— nantitv

40

높은 투표 응답은 저에게 효과가 없었으며 El Capitan 사용자에게는 효과가있는 것 같습니다. 그러나 MacOS Sierra 사용자의 경우 다음 단계를 시도하십시오.

  1. brew install python
  2. sudo pip install --user <package name>

sudo pip install --user <package name>파이썬을 다시 설치할 필요없이 나를 위해 일했습니다
— Datageek

23

경고

Mac에서 시스템 Python을 수정 하지 말 것을 강력히 권합니다. 발생할 수있는 수많은 문제가 있습니다.

특정 오류는 설치 프로그램에 현재 Python 설치에 영향을 미치지 않으면 서 Scrapy의 종속성을 해결하는 데 문제가 있음을 나타냅니다. 시스템은 많은 필수 작업에 Python을 사용하므로 시스템 설치를 안정적으로 유지하는 것이 중요합니다 Apple이 처음 설치 한대로 .

또한 기본 제공 보안을 우회하기 전에 다른 모든 가능성을 소진합니다 .

패키지 관리자 솔루션 :

virtualenv 와 같은 Python 가상화 도구를 먼저 살펴보십시오 . 이를 통해 안전하게 실험 할 수 있습니다.

Mac OS와 충돌하지 않고 언어와 소프트웨어를 사용하는 또 다른 유용한 도구는 Homebrew 입니다. 마찬가지로 MacPorts를 나 핑크 , 브루 Mac 용 패키지 관리자입니다 , 안전하게 다른 언어와 도구를 많이 시도하는 데 유용합니다.

"자신의 롤링"소프트웨어 설치 :

패키지 관리자 접근 방식이 마음에 들지 않으면 /usr/local경로를 사용 하거나 /opt/local대체 Python 설치를 설치하기 위한 디렉토리를 만들고에서 경로를 수정하십시오 .bashrc. 이러한 솔루션에 대해 루트를 활성화해야합니다.

어쨌든 그것을하는 방법 :

보안 검사를 완전히 비활성화해야 하고 시스템 언어 및 리소스를 망칠 수있는 것이 아니라면 이 게시물의 시스템 비활성화 방법에 대한 기술을 사용하여 일시적으로 비활성화하고 다시 활성화 할 수 있습니다 무결성 보호 .


2
그것은 약간의 시간 투자이며 명령 줄 숙련이 필요하지만 그만한 가치가 있습니다-Ruby (RVM), Perl 등의 유사한 가상 환경을 사용합니다. Homebrew는 다른 많은 언어와 도구를 안전하게 시도하는 데 유용합니다 게다가.
— rholmes

16

이것은 나를 위해 속임수를했다 :

   sudo pip install scrapy --ignore-installed six

그렇습니다.이 sudo pip install virtualenvwrapper --ignore-installed six오류는 피 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'
— Rob

12

El Capitan의 새로운 기능인 "시스템 무결성 보호"를 비활성화해야합니다.

먼저, 터미널에서 rootless config 명령을 실행해야합니다

# nvram boot-args="rootless=0"
# reboot

그런 다음 복구 파티션의 터미널 (복구 OS)에서 아래 명령을 실행해야합니다.

# csrutil disable
# reboot

방금 그런 문제를 해결했습니다. 첫 번째 부분이 필요한지 확실하지 않습니다. 당신이 원하는대로 시도하십시오.

--경고

모든 것이 작동 한 후에 SIP를 다시 활성화해야합니다.

간단히 복구 모드로 다시 부팅하고 터미널에서 실행하십시오.

# csrutil enable

csrutil : 시스템 무결성 보호 구성


10
아니, 아니. 이것은 사용자 공간에서 실행되는 유틸리티입니다. 비교적 간단한 방법 은 stackoverflow.com/a/33024464/743638 을 참조하십시오 . 1. 서명되지 않은 커널 확장에서 보호 기능을 해제합니다. 2. 시스템 바이너리 수정 3. 시스템 경로 등을 검사하고 마운트하는 것은 매우 어렵습니다. 설치 후까지 SIP를 임시로 제거한 다음 다시 켜는 것이 좋습니다.
— Sacrilicious

6
나는 이것을하지 않을 것입니다. 이것은 문제를 요구하고 있습니다. 더 우아한 솔루션 접근 방법은 아래의 답변을 참조하십시오.
— Mario

1
질문은 한 달 이상 답변되지 않았습니다. 나는 이것이 유일하게 "찾을 수있는"해결책이라고 생각한다. 모든 설정을 설치 한 후 SIP를 활성화하라는 경고와 함께 답변을 편집하겠습니다.
— Ergun Ozyurt

12

El Capitan에서 pip를 통해 AWS를 설치하려고했지만이 오류가 나타납니다.

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-info '

나는 여기서 답을 찾았다.

sudo -H pip install awscli --upgrade --ignore-installed six

그것은 나를 위해 작동합니다 :)


10

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

5

이것은 나를 위해 속임수를했다.

sudo pip install-무시 무시한 설치


5

몇 가지 답변을 조합하여 시도했지만 결국 작동했습니다.

sudo -H pip install --upgrade --ignore-installed awsebcli

건배


2

파이썬을 다시 설치하십시오.

brew install python

다시 시도하십시오 :

sudo pip install scrapy

나를 위해 일하고, 그것이 도움이되기를 바랍니다.


1

Mac을 재시동합니다-> 시동 차임 후 "Command + R"을 누르고 있습니다-> OS X 유틸리티 열기-> 터미널 열기 및 "csrutil disable"을 입력하고-OS X 재부팅-> 터미널 열기 및 "csrutil 상태"확인



1

때로는 pip3 대신 pip를 사용하여 python2 폴더에 python3 lib를 설치하려고하면 이러한 동작이 달성 될 수 있습니다.


0
  1. -SIP (시스템 무결성 보호)를 닫은 다음-재부팅하고 명령 + R을 사용하여 디버그 모드로 들어간 다음 터미널을 선택하십시오. csrutil disable reboot

2.

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/ pip install scrapy 포함-6 개 무시

3.-이전 6 개를 제거한 후 다시 설치하십시오. 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 활성화 재부팅으로 다시 설정

-엉터리 작품


-1

그것은 나를 위해 작동합니다 :

pip install scrapy --user -U

-1

나는 어딘가에 의존성이 없어서 프로젝트에 대한 다른 요구 사항을 다음과 같이 설치했다.

pip install --user -r requirements.txt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.