2015-10-01 16 views
25

Ich tat sudo pip install -U nltk wie von der Nltk-Dokumentation vorgeschlagen. Ich bin jedoch die folgende Ausgabe bekommen:Kann Nltk nicht auf Mac OS El Capitan installieren

Collecting nltk 
    Downloading nltk-3.0.5.tar.gz (1.0MB) 
    100% |████████████████████████████████| 1.0MB 516kB/s 
Collecting six>=1.9.0 (from nltk) 
    Downloading six-1.9.0-py2.py3-none-any.whl 
Installing collected packages: six, nltk 
    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/basecommand.py", line 211, in main 
    status = self.run(options, args) 
    File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 311, in run 
    root=options.root_path, 
    File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 640, in install 
    requirement.uninstall(auto_confirm=True) 
    File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 716, in uninstall 
    paths_to_remove.remove(auto_confirm) 
    File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 125, in remove 
    renames(path, new_path) 
    File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 315, 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-7dp3on-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info' 

Grundsätzlich ist es nicht in der Lage sechs von 1.4.1 auf 1.9.0 zu aktualisieren. Ich habe versucht, das getrennt zu machen, habe aber den gleichen Fehler.

Ich erwähne El Capitan, weil einige Leute Probleme mit anderen Python-Installation auf El Capitan haben und ich frage mich, ob das daran liegt.

Weiß jemand, wie man dieses Problem löst?

+0

Für das, was ihren Wert, ich das gleiche Problem versucht Mock –

+0

zu installieren Ich bin mit dem gleichen Problem der Installation von 'virtualenvwrapper' – tohster

+0

Die Fragen hier diskutiert werden: http: // Apfel. stackexchange.com/questions/209572/how-to-use-pip-after-the-el-capitan-max-os-x-upgrade – hectorpal

Antwort

38

Hier die ist Art und Weise, wie ich die Probleme behoben:

Zuerst installieren Xcode CLI:

xcode-select --install 

Dann neu installieren Python:

sudo brew reinstall python 

Schließlich installieren nltk:

sudo pip install -U nltk 

Hoffe, es hilft :)

+0

Auch nach dem Befolgen dieser Schritte bekomme ich immer noch einen Fehler: Datei "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", Zeile 103, in copystat os. chflags (dst, st.st_flags) – Chef1075

+2

Keine Notwendigkeit für "sudo" auf brauen oder noch nicht in 'pip'. In anderen Posts gab es eine Lösung, die Sicherheitseinstellungen deaktiviert, aber gefährlich ist. Dies ist die richtige Fehlerbehebung :) – 3manuek

2

Ich hatte das gleiche Problem. Ich verwende brew, um Pakete zu verwalten. Also zuerst müssen Sie brew doctor ausführen Es wird die Probleme mit Ihrer Einrichtung auflisten, korrigieren Sie sie. In meinem Fall/usr/local nicht beschreibbar war, also musste ich es

laufen beheben Dann

brew reinstall python 

Das ist mein Problem behoben und ich war dann in der Lage Pakete zu installieren, mit pip

17

Ich weiß, es gibt viele Gebräu-Booster 'da draußen, aber man sollte nicht Sie müssen einen anderen Python für etwas so Grundlegendes verwenden. Wenn eine Abhängigkeit von pip in/System gefunden wird, wie sie auf South Park sagten, "wirst du eine schlechte Zeit haben". Wenn Sie diese Änderung nicht systemweit vornehmen müssen, können Sie einfach pip install --user <package> eingeben und $HOME/Library/Python/2.7/bin zu Ihrem Shell-Pfad hinzufügen (über ~/.bash_profile usw.).

4

Das System Python kann nicht wegen der neuen Systemintegrität Schutzmechanismus von pip aktualisiert oder geändert werden, die alle Änderungen in das Systemverzeichnis von selbst ‚root‘ deaktiviert. Sie können an anderer Stelle verfügbar SIP von der Wiederherstellungsumgebung über Richtungen deaktivieren (zB http://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/), aber eine bessere Lösung ist es, das --user Argument zu verwenden, um in Ihrem lokales Verzeichnis zu installieren:

pip install --user nltk

Dies wird dann in Ihrem lokalen verläßt nltk Heimverzeichnis.

> python 
>>> import nltk 
>>> nltk 
>>> <module 'nltk' from '/Users/yourusername/Library/Python/2.7/lib/python/site-packages/nltk/__init__.pyc'> 

Klar, wenn Sie versuchen, etwas global zugänglich zu installieren, die nicht funktionieren, aber wenn alles, was Sie zu tun versuchen ist Sachen zu installieren, die Sie von Ihrem eigenen Benutzer-ID laufen gehen, es funktioniert fein.

+0

Dies ist eine schöne Problemumgehung. Danke –

2

Alrighty ‚dann:

die einfache einfache einfache Wahrheit ist eine Hybrid-Antwort von ein paar anderen setzen sie hier:

  1. Systemintegrität Schutz beschränkt den Zugriff auf/Library als root Mac OS X Systemverzeichnisstamm.
  2. Sie brauchen nicht einmal sudo oder Systempakete Neuinstallation von usw.
  3. --user installieren pip NLTK funktioniert "-U installieren pip ..." nicht installiert
  4. pip - -user verwendet das zugängliche Verzeichnis $ HOME/Library/Python/2.7/bin, das Sie zu Ihrem Shell-Pfad hinzufügen können (über ~/.bash_profile usw.).
  5. Das ist viel eleganter als mehrere Installationen von Python mit und benötigen Gebräu usw.

Amen

8

beide dieser Folge in sechs Version 1.41:

pip install --ignore-installed six

pip install awsebcli --upgrade --ignore-installed six

die brew Workaround ist diejenige, die Sinn macht, imo. Wenn Apple eine eigene Kopie von Python für El Capitan benötigt, kann es diese haben. Mine ist jetzt hier: /usr/local/bin/python

+0

schöne Methode – beautifulcode

+0

Ignorieren-installiert arbeitete wie ein Charme, vielen Dank – jimh

Verwandte Themen