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.