it-swarm.com.de

"OSError: [Errno 1] Operation nicht zulässig" bei der Installation von Scrapy unter OSX 10.11 (El Capitan) (Systemintegritätsschutz)

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'
204
Luis U.

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.

149
Mario
pip install --ignore-installed six

Würde den Trick machen.

Quelle: github.com/pypa/pip/issues/3165

399
Sath

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
87
dietbacon

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

  1. brew install python
  2. Sudo pip install --user <package name>
39
LYu

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 .

23
rholmes

Das hat den Trick für mich getan:

   Sudo pip install scrapy --ignore-installed six
16
Roger

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

csrutil: Konfigurieren des Systemintegritätsschutzes

12
Ergun Ozyurt

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 :)

12
Evelin Ponce

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
9
skipper21

Das hat den Trick für mich getan.

Sudo pip install --ignore-installiertes scrapy

5
Miss Haha

Versuchte eine Kombination einiger Antworten und dies funktionierte schließlich:

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

Prost

4
saza

installiere python erneut:

brauen installieren Python

versuche es noch einmal:

Sudo Pip installieren Scrapy

funktioniert bei mir, hoffe es kann helfen

2
dominicli

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

1
Sandeep

Manchmal kann ein solches Verhalten auftreten, wenn Sie versuchen, python3 lib mit pip anstelle von pip3 im Python-Ordner zu installieren.

1
user3860984

Dieser Befehl würde einwandfrei funktionieren: D

Sudo -H pip install --upgrade Paketname --ignore-built six

1
  1. - Schließen Sie SIP (System Integrity Protection). - Starten Sie das System neu. Rufen Sie mit Befehl + R den Debug-Modus auf und wählen Sie Terminal: 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/ 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

0
jimmyzhouj