2015-01-09 11 views
124

Durante l'installazione di pip e pitone mi sono imbattuto in una che dice:pip installare: Si prega di verificare i permessi e proprietario della directory

La directory '/ Users/Partenone/Library/Logs/pi' o il suo la directory principale non è di proprietà dell'utente corrente e il registro di debug è stato disabilitato. Si prega di verificare le autorizzazioni e il proprietario di quella directory. Se esegui pip con sudo, potresti volere il flag -H.

perché ora devo installare utilizzando sudo.

Avevo Python e una manciata di librerie già installate sul mio Mac, sto eseguendo Yosemite. Di recente ho dovuto fare una pulizia pulita e quindi reinstallare il sistema operativo. Ora sto ricevendo questo prompt e sto avendo problemi a capire come cambiare

Prima della mia linea di comando era Parthenon$ ora è Philips-MBP:~ Parthenon$

Io sono l'unico proprietario di questo computer e questo è l'unico account su di essa. Questo sembra essere un problema durante l'aggiornamento a Python 3.4, nulla sembra essere nel posto giusto, virtualenv non sta andando dove mi aspetto, ecc.

+0

Il nome utente è Philip? – komaromy

+0

Ho appena notato che questo succede quando usi pip sulla mia macchina ieri, cosa intendi per virtualenv che non va dove ti aspetti? –

+0

Ho installato Python 3.4 sulla mia macchina, eppure quando eseguo python nel mio terminale continua a funzionare 2.7 anche dopo aver attraversato l'intero processo di installazione. Ho solo menzionato virtualenv perché normalmente mi aspetterei di trovarlo in Library/Python/3.4 ma non c'è Library/Python/3.4 –

risposta

43

Qual è il problema qui è che in qualche modo installato in virtualenv utilizzando sudo. Probabilmente per caso Ciò significa che l'utente root riscrive i dati del pacchetto Python, rendendo tutti i file di proprietà di root e il tuo utente normale non può più scrivere quei file. Solitamente virtualenv dovrebbe essere usato e posseduto solo dal tuo normale utente UNIX.

È possibile risolvere il problema modificando il pacchetto di autorizzazioni file UNIX per l'utente. Prova:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip 
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip 

poi pip dovrebbe essere in grado di scrivere di nuovo quei file.

More information about UNIX file permission management

+0

Pip scrive ancora con l'errore. Ho anche un avvertimento simile e le mie autorizzazioni sono corrette, l'OP non sta effettivamente utilizzando un virtualenv quindi avrebbe senso che l'installazione di pacchetti globalmente richiederebbe sudo. –

+0

@PadraicCunningham: se pip dà un errore che le tue autorizzazioni non sono corrette, mostra le autorizzazioni del file, in modo che possiamo capire cosa c'è che non va. Altrimenti aiutare sarebbe uno sparo nel buio. –

+0

Inoltre ti suggerisco di aprire un'altra domanda perché il tuo problema potrebbe essere diverso da quello dell'autore originale –

109

Ho visto anche questo cambiamento sul mio Mac quando sono andato dal funzionare 'pip' a 'sudo pip'

Aggiunta '-H' per sudo fa sì che il messaggio di andare via per me. Per esempio.

sudo -H pip install pippo

'uomo sudo' mi dice che '-H' provoca sudo per impostare $ HOME per gli utenti target (root in questo caso).

Quindi sembra che pip stia cercando $ HOME/Library/Log e sudo per impostazione predefinita non sta impostando HOME su ~ root. Non sorprendentemente ~/Library/Log è di tua proprietà come utente piuttosto che come root.

Sospetto che si tratti di un recente cambiamento in pip. Lo eseguirò con 'sudo -H' perché ora funzioni.

+14

Si noti che l'uso di 'sudo pip' è completamente errato. Per ulteriori informazioni, consultare http://stackoverflow.com/questions/33004708/osx-el-capitan-sudo-pip-install-oserror-errno-1-operation-not-permitted/33004920#33004920 –

+0

Ho avuto la stessa problema, ma sì, ora devo installare utilizzando il flag "-H". –

38

pip install --user <package name>(non necessario sudo) ha funzionato per me per un problema molto simile.

+0

È necessario fornire almeno un requisito per l'installazione (consultare "installazione guidata dei pip") – Amir