J'essaie d'installer le framework Scrapy Python sous OSX 10.11 (El Capitan) via pip. Le script d'installation télécharge les modules requis et à un moment donné renvoie l'erreur suivante:
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'
J'ai essayé de désactiver la fonctionnalité sans racine dans OSX 10.11 avec la commande:
Sudo nvram boot-args="rootless=0";Sudo reboot
mais je reçois toujours la même erreur lorsque la machine redémarre.
Un indice ou une idée de mes collègues StackExchangers?
Si cela vous aide, la sortie complète du script est la suivante:
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'
Je pense aussi qu'il n'est absolument pas nécessaire de commencer à pirater OS X.
J'ai pu le résoudre en faisant une
brew install python
Il semble que l’utilisation du python/pip fourni avec le nouveau El Capitan pose quelques problèmes.
Comme les autres réponses l'ont dit, c'est à cause de la nouvelle protection de l'intégrité du système, mais je pense que les autres réponses sont trop compliquées.
Si vous n'utilisez que ce package dans l'utilisateur actuel, vous devriez pouvoir l'installer correctement, sans qu'il soit nécessaire de désactiver le SIP, en utilisant l'indicateur --user
. Comme ça:
Sudo pip install --user packagename
Les réponses à haut vote n'ont pas fonctionné pour moi, cela semble fonctionner pour les utilisateurs d'El Capitan. Mais pour les utilisateurs de MacOS Sierra, essayez les étapes suivantes
brew install python
Sudo pip install --user <package name>
Avertissements
Je suggère très fortement de ne pas modifier le système Python sur Mac; de nombreux problèmes peuvent survenir.
Votre erreur particulière indique que le programme d'installation rencontre des problèmes pour résoudre les dépendances de Scrapy sans affecter l'installation actuelle de Python. Le système utilise Python pour un certain nombre de tâches essentielles. Il est donc important de maintenir l’installation du système stable et d’être initialement installée par Apple.
Je voudrais également épuiser toutes les autres possibilités avant de contourner la sécurité intégrée.
Solutions de gestion de paquets:
Veuillez regarder un outil de virtualisation Python tel que virtualenv first; cela vous permettra d'expérimenter en toute sécurité.
Homebrew est un autre outil utile pour utiliser les langues et les logiciels sans conflit avec votre Mac OS. Comme MacPorts ou Fink , Homebrew est un gestionnaire de paquets pour Mac , et est utile pour essayer en toute sécurité de nombreux autres langages et outils.
Installations du logiciel "Faites votre propre":
Si vous n'aimez pas l'approche du gestionnaire de paquets, vous pouvez utiliser le chemin /usr/local
ou créer un répertoire /opt/local
pour installer une autre installation Python et corriger vos chemins dans votre .bashrc
. Notez que vous devrez activer root pour ces solutions.
Comment le faire quand même:
Si vous devez absolument désactiver le contrôle de sécurité (et j'espère sincèrement que c'est pour autre chose que de jouer avec les langues et les ressources du système), vous pouvez le désactiver temporairement et réactivez-le en utilisant certaines des techniques décrites dans cet article pour savoir comment désactiver la protection de l'intégrité du système .
Cela a fait le tour pour moi:
Sudo pip install scrapy --ignore-installed six
Vous devez désactiver "Protection de l'intégrité du système", une nouvelle fonctionnalité d'El Capitan.
Tout d'abord, vous devez exécuter la commande pour la configuration sans racine sur votre terminal
# nvram boot-args="rootless=0"
# reboot
Ensuite, vous devez exécuter la commande ci-dessous sur le terminal de la partition de récupération (Recovery OS)
# csrutil disable
# reboot
Je viens de résoudre mon problème comme ça. Je ne suis pas sûr que la première partie soit nécessaire. Essayez comme vous voulez.
- AVERTISSEMENT
Vous devez réactiver SIP une fois que tout fonctionne.
Il suffit de redémarrer à nouveau en mode de récupération et de l'exécuter dans un terminal
# csrutil enable
csrutil: Configuration de la protection de l'intégrité du système
J'ai essayé d'installer AWS via pip à El Capitan mais cette erreur semble
OSError: [Errno 1] Opération non autorisée: '/var/folders/wm/jhnj0g_s16gb36y8kwvrgm7h0000gp/T/pip-wTnb_D-installation/System/Library/Frameworks/Python.framework/Versions/ 1.4.1-py2.7.Egg-info '
J'ai trouvé la réponse ici
Sudo -H pip install awscli --upgrade --ignore-installed six
Ça marche pour moi :)
La même erreur se produisait sur mon MacOS Sierra. J'ai suivi ces étapes et réussi à installer le paquet scarpy.
1. Sudo pip install --ignore-installed six
2. Sudo pip install --ignore-installed scrapy
MacBook-Air:~ shree$ scrapy version
Scrapy 1.4.0
Cela a fait le tour pour moi.
Sudo pip install - scrapy installé par ignore
J'ai essayé une combinaison de quelques réponses et cela a finalement fonctionné:
Sudo -H pip install --upgrade --ignore-installed awsebcli
À votre santé
réinstallez python:
brasser installer python
essayez à nouveau:
Sudo pip installer scrapy
travaille pour moi, j'espère que cela peut aider
Redémarrez Mac -> maintenez la touche "Commande + R" enfoncée après le carillon de démarrage -> Ouvre les utilitaires OS X -> Ouvrez le terminal et tapez "csrutil désactivé" -> Redémarrez OS X -> ouvrez le terminal et cochez la case "État csrutil".
Parfois, un tel comportement peut être obtenu si vous essayez d'installer python3 lib dans un dossier python en utilisant pip au lieu de pip3.
Cette commande fonctionnerait parfaitement bien: D
Sudo -H pip install --upgrade package_name --ignore-installed six
2.
Sudo C_INCLUDE_PATH =/Applications/Xcode.app/Contenu/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/ inclure pip installer scrapy - six installés par Ignore
3. - puis retirez l’ancien six, puis réinstallez-le lib/python/six * Sudo pip installe six
4. - puis le redéfinir csrutil enable reboot
- merdique fonctionne maintenant