2015-10-01 43 views
25

Ho fatto sudo pip install -U nltk come suggerito dalla documentazione di nltk. Tuttavia, sto ottenendo il seguente output:Impossibile installare nltk su Mac OS El Capitan

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' 

Fondamentalmente, si è in grado di eseguire l'aggiornamento a sei da 1.4.1 a 1.9.0. Ho provato a farlo separatamente ma ho ottenuto lo stesso errore.

Cito El Capitan perché alcune persone si trovano ad affrontare problemi per l'installazione di altri python su El Capitan e mi chiedo se questo è dovuto a quello.

Qualcuno sa come risolvere questo problema?

+0

Per quello che il suo valore, sto avendo lo stesso problema cercando di installare finta –

+0

Sto avendo lo stesso problema l'installazione di 'virtualenvwrapper' – tohster

+0

Le domande è in discussione qui: http: // mela. stackexchange.com/questions/209572/how-to-use-pip-after-the-el-capitan-max-os-x-upgrade – hectorpal

risposta

38

Ecco il modo in cui ho risolto i problemi:

prima cosa, installare Xcode CLI:

xcode-select --install 

Quindi reinstallare Python:

sudo brew reinstall python 

Infine, installare nltk:

sudo pip install -U nltk 

Speranza che aiuta :)

+0

Anche dopo aver seguito questi passaggi ricevo ancora un errore: File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", riga 103, in copiastat os. chflags (dst, st.st_flags) – Chef1075

+2

Non c'è bisogno di 'sudo' su brew o nè di' pip'. C'era una soluzione in giro in altri post che comportano la disabilitazione delle impostazioni di sicurezza, ma è pericolosa. Questa è la corretta risoluzione dei problemi :) – 3manuek

2

Ho avuto lo stesso problema. Uso brew per gestire i pacchetti. quindi prima devi eseguire brew doctor Elencherà i problemi con il tuo setup, correggerli. Nel mio caso/usr/local non era scrivibile così ho dovuto risolvere il problema

Quindi eseguire

brew reinstall python 

Questo risolto il mio problema e sono stato poi in grado di installare i pacchetti usando pip

17

So che ci sono un sacco di 'brew booster' lì, ma non si deve bisogno di usare un altro python per qualcosa di così semplice Se viene rilevata una dipendenza da pip in/System, come è stato detto a South Park "avrai un brutto momento". Se non è necessario apportare questa modifica a livello di sistema, è sufficiente pip install --user <package> e aggiungere $HOME/Library/Python/2.7/bin al percorso della shell (tramite ~/.bash_profile e così via).

4

il sistema Python non può essere aggiornato o modificato da pip a causa del nuovo meccanismo di Protection system Integrity che disabilita tutte le modifiche apportate nella directory di sistema anche da 'root'. È possibile disattivare SIP dall'ambiente di ripristino tramite le indicazioni disponibili altrove (ad esempio http://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/), ma una soluzione migliore è quella di utilizzare l'argomento --user da installare nella vostra directory locale:

pip install --user nltk

Questo sarà poi lasciare NLTK nel vostro locale home directory.

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

Chiaramente se si sta cercando di installare qualcosa globalmente accessibile che non funziona, ma se tutto si sta cercando di fare è installare roba che si sta andando a correre dal proprio ID utente funziona bene.

+0

Questa è una buona soluzione. Grazie –

2

Alrighty 'poi:

la semplice semplice verità semplice è una risposta ibrido di pochi altri stese qui:

    limiti
  1. Protection System Integrity accesso a/Library come una radice Mac OS X root directory di sistema.
  2. che non hanno nemmeno bisogno di sudo o la reinstallazione dei pacchetti di sistema, ecc
  3. pip install --user NLTK funziona, "PIP installare -U ..." Non
  4. non PIP installare - -user usa la directory $ HOME/Library/Python/2.7/bin accessibile ... che puoi aggiungere al tuo percorso shell (tramite ~/.bash_profile, ecc.).
  5. Questo è molto più elegante rispetto avere più installazioni di pitone e che necessitano di birra ecc

Amen

8

entrambe queste si traducono in sei versione 1.41:

pip install --ignore-installed six

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

la soluzione alternativa è quella che ha senso, imo. Se Apple ha bisogno della propria copia di Python per El Capitan, può averlo. Il mio è ora qui: /usr/local/bin/python

+0

bellissimo metodo – beautifulcode

+0

ignore-installato ha funzionato come un fascino, grazie mille – jimh

Problemi correlati