installazione pip: controllare le autorizzazioni e il proprietario di quella directory


155

Durante l'installazione di pip e python mi sono imbattuto in un che dice:

La directory '/ Users / Parthenon / Library / Logs / pi' o la sua directory padre non è di proprietà dell'utente corrente e il registro di debug è stato disabilitato. Controlla le autorizzazioni e il proprietario di quella directory. Se si esegue pip con sudo, è possibile che si desideri il flag -H.

perché ora devo installare usando sudo.

Avevo già installato Python e una manciata di librerie sul mio Mac, sto eseguendo Yosemite. Di recente ho dovuto pulire e reinstallare il sistema operativo. Ora sto ricevendo questo messaggio e ho problemi a capire come cambiarlo

Prima che la mia riga di comando fosse Parthenon$ora lo èPhilips-MBP:~ Parthenon$

Sono l'unico proprietario di questo computer e questo è l'unico account su di esso. 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.


Il tuo account è Philip?
Komaromy,

Ho appena notato che ciò sta accadendo quando ho usato pip sulla mia macchina ieri, cosa intendi con virtualenv non andando dove ti aspetti?
Padraic Cunningham,

Ho installato Python 3.4 sul mio computer, ma quando eseguo python nel mio terminale funziona ancora 2.7 anche dopo aver completato l'intero processo di installazione. Ho solo citato virtualenv perché di solito mi aspetto di trovarlo in Library / Python / 3.4 ma non c'è Library / Python / 3.4
Phil Andrews,

devi usare qualcosa come python3 o python3.4 per usare l'interprete python3, gli oggetti da riaprire sono solo un'impostazione, ubuntu ha la stessa opzione.
Padraic Cunningham,

@PadraicCunningham stai riscontrando lo stesso problema di pip? Hai recentemente aggiornato a Yosemite?
Phil Andrews,

Risposte:


127

Ho anche visto questo cambiamento sul mio Mac quando sono passato dalla corsa pipa sudo pip. L'aggiunta -Ha sudo fa sì che il messaggio scompaia per me. Per esempio

sudo -H pip install foo

man sudomi dice che -Hprovoca sudol'impostazione $HOMEagli utenti di destinazione (root in questo caso).

Quindi sembra che pip stia esaminando $HOME/Library/Loge sudoper impostazione predefinita non è impostato $HOMEsu /root/. Non sorprende che ~/Library/Logsia di tua proprietà come utente piuttosto che come root.

Sospetto che si tratti di un recente cambiamento nel pip. Lo eseguirò con sudo -Hper ora per aggirare.


18
Si noti che l'utilizzo sudo pipè totalmente errato. Per maggiori informazioni consultare qui stackoverflow.com/questions/33004708/...
Mikko Ohtamaa

Ho avuto lo stesso problema, ma sì ora devo installare usando il flag "-H".
Malachi Bazar,

62

Qual è il problema qui è che in qualche modo hai installato in virtualenv usando sudo. Probabilmente per caso. Ciò significa che l' rootutente riscriverà i dati del pacchetto Python, rendendo tutti i file di proprietà di root e l'utente normale non potrà più scrivere quei file. Di solito 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. Provare:

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

quindi pipdovrebbe essere in grado di scrivere di nuovo quei file.

Ulteriori informazioni sulla gestione delle autorizzazioni dei file UNIX


Pip scrive ancora con l'errore. Ho anche un avviso simile e i miei permessi sono corretti, l'OP non sta effettivamente usando un virtualenv quindi avrebbe senso che l'installazione di pacchetti a livello globale richiederebbe sudo.
Padraic Cunningham,

1
@PadraicCunningham: Se pip dà un errore che indica che le tue autorizzazioni sono errate, ti preghiamo di mostrare le tue autorizzazioni per i file, così possiamo capire cosa c'è che non va. Altrimenti aiutare sarebbe un colpo al buio.
Mikko Ohtamaa,

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

Usando il mio nome utente, ho ricevuto un errore: Input: sudo chown -R USERNAME / Users / USERNAME / Library / Logs / pip Output: chown: / Users / USERNAME / Library / Logs / pip: nessun file o directory
simile

61

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


Devi installare almeno un requisito per l'installazione (vedi "pip help install")
Amir

0

informazioni basilari

  • sistema: mac os 18.0.0
  • utente corrente: yutou

il tasto

  1. aggiungi l'account corrente al gruppo di ruote
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. modifica la modalità del pacchetto python su 775.
chmod -R 775 ${this_is_your_python_package_path}

l'intera cosa

  • quando python3 ha compilato bene, le informazioni sono proprio come la domanda ha detto.
  • Provo a usare pip3 install requestse ho ottenuto:
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • così io cd /usr/local/python3/lib/python3.6/site-packages, poi ls -ale ho ottenuto:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

quando ho visto questo, ho capito, makedirs è un'azione di scrittura, ma la modalità di richieste drwxrwxr-xcontestata solo l'utente root può scrivere il file di richieste. Se aggiungi yutou ( whoami) alla ruota di gruppo e modifichi il pacchetto sulla ruota di gruppo può scrivere, allora posso scrivere e il problema è risolto.

Come aggiungere yutou alla ruota di gruppo? + rileva gruppo ruota, sudo dscl . -list /groups GroupMembershiptroverai:

wheel                    root

il gruppo ruota solo un membro root. + Aggiungi yutou al gruppo wheel, sudo dscl . -append /Groups/wheel wheel yutou. + controllare sudo dscl . -list /groups GroupMembership,:

wheel                    root yutou

modifica la modalità del pacchetto python

chmod -R 775 /usr/local/python3/lib/python3.6

0

Se hai modificato la tua variabile $ PATH ciò potrebbe anche causare il problema. Se ritieni che potrebbe essere il problema, controlla il tuo ~ / .bash_profile o ~ / .bashrc

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.