Windows 10 and pip upgrading - Access denied
Solution 1
As discussed here, it's a Windows limitation. In brief, the pip.exe file is in use and thus locked and can't be deleted. Use python -m pip install --upgrade pip
.
Solution 2
My first choice in the same situation is to start console with administrator rights. You can do that from start menu or if you are using ConEmu / Cmder, just run new instance / tab as administrator.
Solution 3
Try using this
python -m pip install --user --upgrade pip
Solution 4
I had the same problem. It worked if you run cmd "as administrator" by right-clicking.
FalloutBoy
Updated on July 23, 2022Comments
-
FalloutBoy almost 2 years
I have done a fresh Windows 10 install, installed python, cygwin and a improved console called ConEmu. After installing python 3.4.3 I execute:
pip install -U pip
And got this error.
File "C:\Anwendungsentwicklung\Python34\lib\site-packages\pip\utils\__init__.py", line 70, in rmtree_errorhandler os.makedirs(path) PermissionError: [WinError 5] Zugriff verweigert: 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-dxm8d3xg-uninstall\\anwendungsentwicklung\\python34\\scripts\\pip.exe'
I'm logged in with pre-defined Administrator account and the temp dir as well as the installation dir of Python (C:\Anwendungsentwicklung\Python34) has full access.
Please I have tested all variations by setting different rights but Windows won't let me. I even added "Everyone" to security tab but this didn't help although I remember it was working with Windows 7 with this "trick". It must be a problem with Windows 10. Can someone help??
This is full traceback
Exception: Traceback (most recent call last): File "c:\anwendungsentwicklung\python34\lib\shutil.py", line 372, in _rmtree_unsafe os.unlink(fullname) PermissionError: [WinError 5] Zugriff verweigert: 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-k7g0hd6t- uninstall\\anwendungsentwicklung\\python34\\scripts\\pip.exe' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\anwendungsentwicklung\python34\lib\site-packages\pip\basecommand.py", line 232, in main logger.critical('Operation cancelled by user') File "c:\anwendungsentwicklung\python34\lib\site-packages\pip\commands\install.py", line 347, in run ensure_dir(options.target_dir) File "c:\anwendungsentwicklung\python34\lib\site-packages\pip\req\req_set.py", line 560, in install missing_requested = sorted( File "c:\anwendungsentwicklung\python34\lib\site-packages\pip\req\req_install.py", line 677, in commit_uninstall logger.debug( File "c:\anwendungsentwicklung\python34\lib\site-packages\pip\req\req_uninstall.py", line 153, in commit self.save_dir = None File "c:\anwendungsentwicklung\python34\lib\site-packages\pip\utils\__init__.py", line 58, in rmtree SUPPORTED_EXTENSIONS = ZIP_EXTENSIONS + TAR_EXTENSIONS File "c:\anwendungsentwicklung\python34\lib\shutil.py", line 484, in rmtree return _rmtree_unsafe(path, onerror) File "c:\anwendungsentwicklung\python34\lib\shutil.py", line 368, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "c:\anwendungsentwicklung\python34\lib\shutil.py", line 368, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "c:\anwendungsentwicklung\python34\lib\shutil.py", line 368, in _rmtree_unsafe _rmtree_unsafe(fullname, onerror) File "c:\anwendungsentwicklung\python34\lib\shutil.py", line 376, in _rmtree_unsafe print(fullname) File "c:\anwendungsentwicklung\python34\lib\site-packages\pip\utils\__init__.py", line 70, in rmtree_errorhandler try: PermissionError: [WinError 5] Zugriff verweigert: 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-k7g0hd6t-uninstall\\anwendungsentwicklung\\python34\\scripts\\pip.exe'
Now I added a breakpoint in "c:\anwendungsentwicklung\python34\lib\shutil.py":
# version vulnerable to race conditions def _rmtree_unsafe(path, onerror): try: if os.path.islink(path): # symlinks to directories are forbidden, see bug #1669 raise OSError("Cannot call rmtree on a symbolic link") except OSError: onerror(os.path.islink, path, sys.exc_info()) # can't continue even if onerror hook returns return names = [] try: names = os.listdir(path) except OSError: onerror(os.listdir, path, sys.exc_info()) for name in names: fullname = os.path.join(path, name) try: mode = os.lstat(fullname).st_mode except OSError: mode = 0 if stat.S_ISDIR(mode): _rmtree_unsafe(fullname, onerror) else: try: #import pdb os.unlink(fullname) #pdb.set_trace() except OSError: import pdb; pdb.set_trace() print(fullname) import getpass print(getpass.getuser()) onerror(os.unlink, fullname, sys.exc_info()) try: os.rmdir(path) except OSError: onerror(os.rmdir, path, sys.exc_info())
When i execute
os.unlink(fullname) # 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-k7g0hd6t- uninstall\\anwendungsentwicklung\\python34\\scripts\\pip.exe'
I get this
PermissionError
, so i checked the rights of this .exe file withoct(os.stat(fullname)[ST_MODE])
and it returns: '0o100777'
And when i'm right, this means full permission for everyone (owner, group and others).
I'm frustrated :/ Someone an idea?
-
poke over 8 yearsDid you try running the command while being elevated?
-
Thane Plummer over 8 yearsIt's not your ConEmu console -- I just upgraded and got the same error using the standard Cygwin console.
-
FalloutBoy over 8 years@poke sure. But like Thane Plummer says, it doesn't matter which console. Windows 10 has something generally crapped -.-
-
poke over 8 yearsI meant running e.g.
cmd.exe
as administrator (via right-click). -
FalloutBoy over 8 yearsyes tried it, but same problem
-
Eryk Sun over 8 years@poke, the "Administrator" account (SID S-1-5-21-...-500) is disabled by default because it's not subject to UAC. It gets logged on with an unrestricted token that has the BUILTIN\Administrators (S-1-5-32-544) group enabled, an elevated (High) integrity label (S-1-16-12288), and the full set of administrator privileges such as SeTakeOwnershipPrivilege.
-
Eryk Sun over 8 yearsIf pip.exe is currently running, then the file is memory-mapped by the memory manager and can't be deleted until the process exits or is forcibly terminated.
-
-
Roland Smith over 8 yearsPlease give extra information by editing your question rather than adding it as an answer (which it isn't).
-
FalloutBoy over 8 years@Roland Smith seen that in other threads, sorry. Solved the problem for me. It's a windows limitation and wasn't fixed since yet. Use python -m pip install --upgrade pip. Discussed here: github.com/pypa/pip/issues/1299 Summary: The file is locked/ in use and those files can't be deleted. Thanks all!
-
Don O'Donnell over 7 yearsJust to clarify: open start menu, right click 'command prompt', select 'more', click 'Run as administrator'.
-
Pirate X over 6 yearsThanks. This helped !
-
Heewoon over 2 yearsTo summarize, pip is actually upgraded but that fact is not known by python or pip itself. And the error is just fake, or there was an error in the code, that tried to access another directory without elevation.
-
Nic Szerman almost 2 years@RolandSmith The question was "Can someone help?" and this post is an answer to that question.