2015-08-23 35 views
19

Viene visualizzato il seguente errore quando si utilizza PIP per installare nuovi pacchetti o addirittura aggiornare il pip stesso alla versione più recente. Sto facendo pip su una macchina Windows 8.1 con Python 3.4.Python - PIP installa risoluzione dei problemi - PermissionError: [WinError 5] Accesso negato

Il messaggio indica che non sono presenti autorizzazioni amministrative sui file (il mio account è un account amministratore).

Apprezzerei qualsiasi idea su come risolvere questo problema, in quanto sta ostacolando l'installazione di pacchetti e l'avanzamento con Python.

Messaggio di errore:

Installing collected packages: pip 
    Found existing installation: pip 6.0.8 
    Uninstalling pip-6.0.8: 
     Removing file or directory c:\program files (x86)\python\python34\lib\site-packages\pip-6.0.8.dist-info\description.rst 
     Cleaning up... 
Exception: 
Traceback (most recent call last): 
    File "C:\Program Files (x86)\Python\Python34\lib\shutil.py", line 523, in move 
    os.rename(src, real_dst) 
PermissionError: [WinError 5] Access is denied: 'c:\\program files (x86)\\python\\python34\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst' -> 'C:\\Users\\User\\AppData\\Local\\Temp\\pip-uze_sc4k-uninstall\\program files (x86)\\python\\python34\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\basecommand.py", line 232, in main 
    status = self.run(options, args) 
    File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\commands\install.py", line 347, in run 
    root=options.root_path, 
    File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\req\req_set.py", line 543, in install 
    requirement.uninstall(auto_confirm=True) 
    File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\req\req_install.py", line 667, in uninstall 
    paths_to_remove.remove(auto_confirm) 
    File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\req\req_uninstall.py", line 126, in remove 
    renames(path, new_path) 
    File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\utils\__init__.py", line 316, in renames 
    shutil.move(old, new) 
    File "C:\Program Files (x86)\Python\Python34\lib\shutil.py", line 536, in move 
    os.unlink(src) 
PermissionError: [WinError 5] Access is denied: 'c:\\program files (x86)\\python\\python34\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst' 
+3

Eseguire il prompt dei comandi come amministratore. Potrebbe aiutare. Avere autorizzazioni di amministratore nell'account non è sempre sufficiente. – Roope

+0

Grazie Roope. Questo era davvero il problema. Risolto facilmente ma frustrante per esperienza. –

+0

Ancora rilevanti nel 2018: non eseguire le cose come amministratore. La soluzione più sensata è usare 'virtualenv' per creare una directory di ambiente virtuale (" virtualenv dirname ") e quindi attivare quell'ambiente virtuale con" dirname \ Script \ Activate "prima di eseguire qualsiasi comando pip. In questo modo, tutto viene scritto in dirs per cui si dispone di permessi di scrittura completi, senza bisogno di UAC e senza installazioni globali per dipendenze locali. –

risposta

40

Per coloro che possono incorrere nello stesso problema:

Eseguire il prompt dei comandi come amministratore. Avere autorizzazioni di amministratore nell'account non è sempre sufficiente. In Windows, le cose possono essere eseguite come amministratore facendo clic con il pulsante destro del mouse sull'eseguibile e selezionando "Esegui come amministratore". Quindi, digita "cmd" nel menu Start, fai clic con il pulsante destro del mouse su cmd.exe ed eseguilo come amministratore.

+2

Se non si dispone dei privilegi di amministratore/non si desiderano i privilegi di amministratore: http://stackoverflow.com/questions/7465445/how-to-install-python-modules-without-root-access – Gladclef

+4

si verifica ancora anche in modalità admin – jef

+0

Ancora rilevante nel 2018: la soluzione di gran lunga più sensata è creare una virtualenv con "virtualenv dirname", quindi attivarla con "dirname \ Script \ Activate" prima di eseguire qualsiasi comando pip. –

3

Non utilizzare il prompt dei comandi nell'IDE. Esegui il prompt dei comandi da windows come amministratore. Sono sicuro che questo risolverà il problema. In caso contrario, disinstallare pip e reinstallare quello più recente direttamente.

+2

Sono riuscito a farlo dall'IDE (PyCharm). Ho appena riavviato PyCharm stesso in modalità amministratore. –

1

A partire dall'aggiornamento da pip 7.x.x a 8.x.x su Python 3.4 (per il supporto * .whl).

comando sbagliato: pip install --upgrade pip (non può muoversi PIP.EXE alla cartella temporanea, permisson negato)

variante OK: py -3.4 -m pip install --upgrade pip (non eseguire PIP.EXE)

3

ho avuto lo stesso problema con anaconda su Windows. Sembra che ci sia un issu con antivirus mcAfee. Se lo si disattiva durante l'esecuzione degli aggiornamenti o delle installazioni, consente di eseguire correttamente l'installazione.

+0

La disabilitazione di "Host IPS" mi ha aiutato. Grazie! – amaslenn

11

So che la mia risposta sarebbe strana ma è quello che ho vissuto proprio ora.

Ho ottenuto l'errore simile durante l'installazione del pacchetto tensorflow e ho provato lo stesso aprendo PowerShell in Windows come amministratore ma invano.

Successivamente ho scoperto che stavo già usando Numpy in uno degli script Python in una sessione Python attiva. Così ho chiuso l'IDE Spyder e ho provato ad installare il pacchetto tensorflow eseguendo PowerShell come amministratore e ha funzionato.

Spero che questo vi aiuterà a qualcun altro come me che si aprirà questo post vecchio ma utile nei prossimi giorni

+1

Grazie, questo mi ha aiutato. – Kappie001

+1

felice che abbia aiutato :-) – JKC

0

ancora rilevante nel 2018: non installare i pacchetti come amministratore.

Il di gran lunga soluzione più ragionevole è quella di utilizzare virtualenv per creare una directory ambiente virtuale (virtualenv dirname) e quindi attivare questo ambiente virtuale con dirname\Script\Activate in Windows prima di eseguire qualsiasi comando pip.

In questo modo, tutto viene scritto in dirs per cui si dispone dell'autorizzazione alla scrittura completa, senza necessità di controllo dell'account utente e senza installazioni globali per le directory locali.

Problemi correlati