Estou tentando instalar o framework Scrapy Python no OSX 10.11 (El Capitan) via pip. O script de instalação baixa os módulos necessários e, em algum momento, retorna o seguinte erro:
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'
Tentei desativar o recurso sem raiz no OSX 10.11 com o comando:
sudo nvram boot-args="rootless=0";sudo reboot
mas ainda recebo o mesmo erro quando a máquina é reinicializada.
Alguma pista ou ideia dos meus colegas StackExchangers?
Se ajudar, a saída completa do script é a seguinte:
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'
python
macos
python-2.7
scrapy
Luis U.
fonte
fonte
Respostas:
Também acho que não é absolutamente necessário começar a invadir o OS X.
Eu fui capaz de resolvê-lo fazendo um
Parece que o uso do python / pip que acompanha o novo El Capitan tem alguns problemas.
fonte
brew install python3
possa resolver isso, pois em sistemas mais recentes o python3 agora é o python padrão.Faria o truque.
Fonte: github.com/pypa/pip/issues/3165
fonte
sudo pip install --ignore-installed awscli
ImportError: cannot import name xmlrpc_client
--ignore-installed
A flag também fez o truque para o AWS Elastic Beanstalk Cli para mim. Finalmente ...sudo pip install --ignore-installed scrapy
.Como as outras respostas disseram, é por causa da nova Proteção de Integridade do Sistema, mas acredito que as outras respostas sejam complicadas demais.
Se você só usar esse pacote no usuário atual, poderá instalá-lo perfeitamente, sem a necessidade de desativar o SIP, usando o
--user
sinalizador. Como isso:fonte
sudo pip install mkvirtualenv --ignore-installed six
funciona como esperado, colocando virtualenvwrapper.sh em / usr / local / binAs respostas votadas não funcionaram para mim, parece funcionar para os usuários do El Capitan. Mas para usuários do MacOS Sierra, tente as seguintes etapas
brew install python
sudo pip install --user <package name>
fonte
sudo pip install --user <package name>
trabalhou para mim, sem a necessidade de reinstalar o pythonAdvertências
Eu sugeriria fortemente contra a modificação do sistema Python no Mac; Existem vários problemas que podem ocorrer.
Seu erro específico mostra que o instalador tem problemas ao resolver as dependências do Scrapy sem afetar a instalação atual do Python. O sistema usa o Python para várias tarefas essenciais, por isso é importante manter a instalação do sistema estável e como originalmente instalada pela Apple.
Eu também esgotaria todas as outras possibilidades antes de ignorar a segurança incorporada.
Soluções do Gerenciador de Pacotes:
Por favor, verifique primeiro uma ferramenta de virtualização Python como virtualenv ; isso permitirá que você experimente com segurança.
Outra ferramenta útil para usar idiomas e software sem entrar em conflito com o seu Mac OS é o Homebrew . Como o MacPorts ou o Fink , o Homebrew é um gerenciador de pacotes para Mac e é útil para testar com segurança muitas outras linguagens e ferramentas.
Instalações de software "role your own":
Se você não gostar da abordagem do gerenciador de pacotes, poderá usar o
/usr/local
caminho ou criar um/opt/local
diretório para instalar uma instalação alternativa do Python e corrigir seus caminhos no seu.bashrc
. Observe que você precisará habilitar a raiz para essas soluções.Como fazer assim mesmo:
Se você absolutamente precisar desativar a verificação de segurança (e eu sinceramente espero que seja para algo que não seja mexer com os idiomas e recursos do sistema), você pode desativá-lo temporariamente e reativá-lo usando algumas das técnicas desta postagem sobre como desativar o sistema Proteção de integridade .
fonte
Isso fez o truque para mim:
fonte
sudo pip install virtualenvwrapper --ignore-installed six
, evitando este erro: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'
Você deve desativar a "System Integrity Protection", que é um novo recurso do El Capitan.
Primeiro, você deve executar o comando para configuração sem raiz no seu terminal
Em seguida, execute o comando abaixo no terminal da partição de recuperação (Recovery OS)
Acabei de resolver meu problema assim. Não tenho certeza de que a primeira parte seja necessária. Tente como quiser.
--AVISO
Você deve ativar o SIP novamente depois que tudo funcionar;
Basta reiniciar novamente no modo de recuperação e executar no terminal
csrutil: configurando a proteção de integridade do sistema
fonte
Tentei instalar a AWS via pip no El Capitan, mas este erro aparece
Eu encontrei a resposta aqui
Funciona para mim :)
fonte
Eu estava recebendo o mesmo erro no meu MacOS Sierra. Segui estas etapas e consegui instalar com êxito o pacote com problemas.
fonte
Isso fez o truque para mim.
Instalação do sudo pip - scrapy -ignore-installed
fonte
Tentei uma combinação de algumas respostas e isso acabou funcionando:
sudo -H pip install --upgrade --ignore-installed awsebcli
Felicidades
fonte
instale o python novamente:
tente de novo:
funciona para mim, espero que possa ajudar
fonte
Reinicie o Mac -> mantenha pressionado "Command + R" após o toque de inicialização -> Abre Utilitários do OS X -> Abra o Terminal e digite "csrutil disable" -> Reinicie o OS X -> Abra o Terminal e verifique "status do csrutil"
fonte
Este comando funcionaria perfeitamente bem: D
sudo -H pip install --upgrade package_name --ignore-installed six
fonte
Às vezes, esse comportamento pode ser alcançado se você tentar instalar python3 lib na pasta python2 usando pip em vez de pip3.
fonte
2)
sudo C_INCLUDE_PATH = / Aplicativos / Xcode.app / Conteúdo / Desenvolvedor / Plataformas / MacOSX.platform / Desenvolvedor / 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/ incluem o pip install scrapy - seis
3. - remova os seis antigos, instale-o novamente 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 instala seis
4. - em seguida, configure-o novamente csrutil enable reboot
- porcaria funciona agora
fonte
funciona para mim:
fonte
Estava faltando uma dependência em outro lugar ao longo da linha, então instalei os outros requisitos para o projeto como este:
fonte