title: Windows 10 and pip upgrading - Access denied
body: <p>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:</p>
  
  <pre><code>pip install -U pip
  </code></pre>
  
  <p>And got this error.</p>
  
  <pre><code>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'
  </code></pre>
  
  <p>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.</p>
  
  <p>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??</p>
  
  <p><a href="https://i.stack.imgur.com/HCuYy.png" rel="noreferrer"><img src="https://i.stack.imgur.com/HCuYy.png" alt="enter image description here"></a></p>
  
  <hr>
  
  <p>This is full traceback</p>
  
  <pre><code>  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'
  </code></pre>
  
  <p>Now I added a breakpoint in "c:\anwendungsentwicklung\python34\lib\shutil.py":</p>
  
  <pre><code># 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())
  </code></pre>
  
  <p>When i execute</p>
  
  <pre><code>os.unlink(fullname) # 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-k7g0hd6t- uninstall\\anwendungsentwicklung\\python34\\scripts\\pip.exe'
  </code></pre>
  
  <p>I get this <code>PermissionError</code>, so i checked the rights of this .exe file with</p>
  
  <pre><code>oct(os.stat(fullname)[ST_MODE])
  </code></pre>
  
  <p>and it returns: '0o100777'</p>
  
  <p>And when i'm right, this means full permission for everyone (owner, group and others).</p>
  
  <p>I'm frustrated :/
  Someone an idea?</p>