2015-06-08 13 views
5

pip mi ha chiesto di aggiornare con un messaggio:"Accesso negato" durante l'aggiornamento PIP.EXE su Windows

You are using pip version 7.0.1, however version 7.0.3 is available. 
You should consider upgrading via the 'pip install --upgrade pip' command. 

così mi sono imbattuto il comando e ottengo un'eccezione che pip non può disinstallare la vecchia versione perché l'accesso al mio utente viene negato l'elenco:

 
    Collecting pip 
    Downloading pip-7.0.3-py2.py3-none-any.whl (1.1MB) 
     100% |################################| 1.1MB 292kB/s 
    Installing collected packages: pip 
    Found existing installation: pip 7.0.1 
    Uninstalling pip-7.0.1: 
     Successfully uninstalled pip-7.0.1 
    Exception: 
    Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\pip\basecommand.py", line 223, in main 
    status = self.run(options, args) 
    File "C:\Python27\lib\site-packages\pip\commands\install.py", line 297, in run 

    root=options.root_path, 
    File "C:\Python27\lib\site-packages\pip\req\req_set.py", line 633, in install 
    requirement.commit_uninstall() 
    File "C:\Python27\lib\site-packages\pip\req\req_install.py", line 734, in commit_uninstall 
    self.uninstalled.commit() 
    File "C:\Python27\lib\site-packages\pip\req\req_uninstall.py", line 153, in commit 
    rmtree(self.save_dir) 
    File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 49, in wrapped_f 
    return Retrying(*dargs, **dkw).call(f, *args, **kw) 
    File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 212, in call 
    raise attempt.get() 
    File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 247, in get 

    six.reraise(self.value[0], self.value[1], self.value[2]) 
    File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 200, in call 
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False) 
    File "C:\Python27\lib\site-packages\pip\utils\__init__.py", line 89, in rmtree 
    onerror=rmtree_errorhandler) 
    File "C:\Python27\lib\shutil.py", line 247, in rmtree 
    rmtree(fullname, ignore_errors, onerror) 
    File "C:\Python27\lib\shutil.py", line 247, in rmtree 
    rmtree(fullname, ignore_errors, onerror) 
    File "C:\Python27\lib\shutil.py", line 252, in rmtree 
    onerror(os.remove, fullname, sys.exc_info()) 
    File "C:\Python27\lib\site-packages\pip\utils\__init__.py", line 101, in rmtree_errorhandler 
    func(path) 
    WindowsError: [Error 5] Access is denied: 'c:\\users\\chris\\appdata\\local\\temp\\pip-ossyhh-uninstall\\python27\\scripts\\pip.exe' 

sono in esecuzione di Windows 8.1, ma ho avuto lo stesso errore su un altro computer che esegue Windows 7. non sembra per interrompere l'installazione della nuova versione, ma finisco con le cartelle pip lasciate nella mia directory temporanea. Qualcuno sa perché questo succede o come posso correggerlo?

Edit1: Stranamente, eseguire l'aggiornamento con privlidges Admin genera un'eccezione nuova:

File "C:\Python27\lib\site-packages\pip-7.0.1-py2.7.egg\pip\_vendor\distlib\scripts.py", line 302, in _get_launcher 
result = finder(distlib_package).find(name).bytes 
AttributeError: 'NoneType' object has no attribute 'bytes'` 

e fallisce completamente l'aggiornamento.

Edit2: L'unico modo per aggirare questo problema sembra essere utilizzando easy_install aggiornare pip (sia la U o le opzioni -m), ma sembra un problema per me se PIP non può aggiornare se stesso, quando la sua funzionalità prevista (e dichiarata) è quella di farlo.

+1

stai scappando da un prompt dei comandi, senza privilegi di amministratore? – paisanco

+0

Anche questo potrebbe essere un problema! Esegui come amministratore –

+0

Penso di aver letto che questo è un problema con le autorizzazioni impostate nella cartella appdata \ local \ temp. Potresti provare a controllare le autorizzazioni su di esso. – jangler

risposta

4

Il problema qui è apparentemente perché si esegue pip.exe per l'aggiornamento stesso. Quindi lo pip.exe da eliminare è effettivamente in esecuzione al momento. La correzione è di usare un po 'diverso da riga di comando:

python -m pip install --upgrade pip 

Questo è da questo bug report (anche se ci sono altri):

• Accesso negato: '... PIP.EXE' è perché stai aggiornando pip usando il wrapper pip.exe che viene sostituito nell'aggiornamento. Su Windows non è possibile sostituire eseguibili/DLL in uso. Si dovrebbe usare python -m pip install --upgrade pip. IIRC è indicato nella documentazione .

3

Ho avuto lo stesso problema di recente su una macchina Windows 7. Ho eseguito il prompt dei comandi come amministratore (dai tuoi commenti), quindi ho digitato pip install --upgrade pip.

Ha restituito messaggi di errore sul wazoo, ma poi quando ho provato a farlo di nuovo (pip install --upgrade pip), mi ha detto che Pip era già aggiornato. Quindi pip -V mi ha detto che avevo pip 7.0.3.

Non ho idea di cosa stia succedendo. Cercare di ottenere pacchetti Python su Windows sembra molto difficile. Spero che sia stato utile.

Inoltre, sto usando python 3.5, che potrebbe essere diverso.

-1

Ho affrontato lo stesso problema. Ho semplicemente usato il comando SUDO sul mio terminale mac e ha funzionato. Di seguito è l'uscita del terminale.

sudo pip install -U pip

Anuvrats-MacBook-Air:~ anuvrattiku$ pip -V 
pip 7.1.2 from /Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg (python 2.7) 
Anuvrats-MacBook-Air:~ anuvrattiku$ **sudo pip install -U pip** 
Password: 
The directory '/Users/anuvrattiku/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. 
The directory '/Users/anuvrattiku/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. 
Collecting pip 
Downloading pip-8.0.2-py2.py3-none-any.whl (1.2MB) 
100% |████████████████████████████████| 1.2MB 272kB/s 
Installing collected packages: pip 
Found existing installation: pip 7.1.2 
Uninstalling pip-7.1.2: 
Successfully uninstalled pip-7.1.2 
Successfully installed pip-8.0.2 
Anuvrats-MacBook-Air:~ anuvrattiku$ 
0

Ho anche affrontato il problema durante l'installazione di matplotlib utilizzando la versione di pip 7.1.2 così l'ho aggiornato a pip 9.0.1.

Tuttavia durante l'aggiornamento mi ha dato un errore di accesso negato a pip.exe ma quando ho controllato la versione utilizzando pip -v è stato aggiornato. E semplicemente eseguo pip install matplotlib. Ha funzionato per me.

D:\Users\703186511>pip install --upgrade pip 

o cercare

D:\Users\703186511>python -m pip install --upgrade pip 
D:\Users\703186511>pip -V 
D:\Users\703186511>pip install matplotlib