Ich versuche, das Framework Scrapy Python in OSX 10.11 (El Capitan) über pip zu installieren. Das Installationsskript lädt die erforderlichen Module herunter und gibt zu einem bestimmten Zeitpunkt den folgenden Fehler zurück:
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'
Ich habe versucht, die rootless-Funktion in OSX 10.11 mit dem folgenden Befehl zu deaktivieren:
Sudo nvram boot-args="rootless=0";Sudo reboot
ich erhalte jedoch immer noch den gleichen Fehler, wenn der Computer neu gestartet wird.
Irgendwelche Hinweise oder Ideen von meinen StackExchanger-Kollegen?
Wenn es hilft, lautet die vollständige Skriptausgabe wie folgt:
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'
Ich denke auch, dass es absolut nicht notwendig ist, OS X zu hacken.
Ich konnte es lösen, indem ich a
brew install python
Es scheint, dass die Verwendung von python/pip, das mit dem neuen El Capitan geliefert wird, einige Probleme hat.
Wie die anderen Antworten sagten, liegt es am neuen Systemintegritätsschutz, aber ich glaube, die anderen Antworten sind zu kompliziert.
Wenn Sie dieses Paket nur für den aktuellen Benutzer verwenden, sollten Sie es problemlos installieren können, ohne das SIP mithilfe des Flags --user
deaktivieren zu müssen. So was:
Sudo pip install --user packagename
Die Antworten mit den höchsten Bewertungen haben bei mir nicht funktioniert, es scheint bei El Capitan-Benutzern zu funktionieren. Für Benutzer von MacOS Sierra führen Sie die folgenden Schritte aus
brew install python
Sudo pip install --user <package name>
Warnungen
Ich würde empfehlen sehr stark gegen das Ändern des Systems Python auf Mac; Es gibt zahlreiche Probleme, die auftreten können.
Ihr spezieller Fehler zeigt, dass das Installationsprogramm Probleme beim Auflösen der Abhängigkeiten für Scrapy hat, ohne dass dies Auswirkungen auf die aktuelle Python -Installation hat. Das System verwendet Python für eine Reihe von wichtigen Aufgaben. Es ist daher wichtig, die Systeminstallation stabil und wie ursprünglich von Apple installiert zu halten .
Ich würde auch alle anderen Möglichkeiten ausschöpfen, bevor ich die eingebaute Sicherheit umgehen würde.
Package Manager-Lösungen:
Bitte schauen Sie zuerst in ein Python Virtualisierungstool wie virtualenv ; Auf diese Weise können Sie sicher experimentieren.
Ein weiteres nützliches Tool, um Sprachen und Software zu verwenden, ohne mit Ihrem Mac OS in Konflikt zu geraten, ist Homebrew . Wie MacPorts oder Fink , Homebrew ist ein Paketmanager für Mac , und ist nützlich für die sichere Probieren Sie viele andere Sprachen und Tools aus.
"Roll your own" Software wird installiert:
Wenn Ihnen der Paketmanager-Ansatz nicht gefällt, können Sie den Pfad /usr/local
verwenden oder ein Verzeichnis /opt/local
erstellen, um eine alternative Python -Installation zu installieren und Ihre Pfade in Ihrem .bashrc
zu reparieren. Beachten Sie, dass Sie für diese Lösungen root aktivieren müssen.
Wie auch immer:
Wenn Sie die Sicherheitsprüfung unbedingt deaktivieren müssen (und ich hoffe aufrichtig, dass dies nicht nur eine Störung der Systemsprachen und -ressourcen darstellt), können Sie sie vorübergehend deaktivieren und aktivieren Sie es mithilfe einiger Techniken in diesem Beitrag erneut, um Systemintegritätsschutz deaktivieren .
Das hat den Trick für mich getan:
Sudo pip install scrapy --ignore-installed six
Sie sollten "System Integrity Protection" deaktivieren, eine neue Funktion in El Capitan.
Zuerst sollten Sie den Befehl für rootless config auf Ihrem Terminal ausführen
# nvram boot-args="rootless=0"
# reboot
Führen Sie dann den folgenden Befehl auf dem Terminal der Wiederherstellungspartition (Wiederherstellungsbetriebssystem) aus.
# csrutil disable
# reboot
Ich habe gerade mein Problem so gelöst. Ich bin mir nicht sicher, ob der erste Teil notwendig ist. Versuchen Sie es nach Belieben.
- WARNUNG
Sie sollten SIP erneut aktivieren, nachdem alles funktioniert hat.
Starten Sie den Computer einfach erneut im Wiederherstellungsmodus und führen Sie ihn im Terminal aus
# csrutil enable
Ich habe versucht, AWS über pip in El Capitan zu installieren, aber dieser Fehler wird angezeigt
OSError: [Errno 1] Vorgang nicht zulässig: '/var/folders/wm/jhnj0g_s16gb36y8kwvrgm7h0000gp/T/pip-wTnb_D-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/ 1.4.1-py2.7.Ei-info '
Ich habe die Antwort gefunden hier
Sudo -H pip install awscli --upgrade --ignore-installed six
Für mich geht das :)
Ich habe auf meinem MacOS Sierra den gleichen Fehler erhalten. Ich bin diesen Schritten gefolgt und konnte scarpy erfolgreich installieren.
1. Sudo pip install --ignore-installed six
2. Sudo pip install --ignore-installed scrapy
MacBook-Air:~ shree$ scrapy version
Scrapy 1.4.0
Das hat den Trick für mich getan.
Sudo pip install --ignore-installiertes scrapy
Versuchte eine Kombination einiger Antworten und dies funktionierte schließlich:
Sudo -H pip install --upgrade --ignore-installed awsebcli
Prost
installiere python erneut:
brauen installieren Python
versuche es noch einmal:
Sudo Pip installieren Scrapy
funktioniert bei mir, hoffe es kann helfen
Mac neu starten -> "Command + R" nach dem Start gedrückt halten -> OS X Utilities öffnen -> Terminal öffnen und "csrutil disable" eingeben -> OS X neu starten -> Terminal öffnen und "csrutil status" überprüfen
Manchmal kann ein solches Verhalten auftreten, wenn Sie versuchen, python3 lib mit pip anstelle von pip3 im Python-Ordner zu installieren.
Dieser Befehl würde einwandfrei funktionieren: D
Sudo -H pip install --upgrade Paketname --ignore-built six
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/ Dazu gehört Pip Install Scrapy - vorinstallierte sechs
3. - entferne dann die alten sechs, installiere sie erneut lib/python/six * Sudo pip install six
4. - Setzen Sie es dann wieder auf csrutil enable reboot
- Mist arbeitet jetzt