Windows 10和点子升级 – 访问被拒绝

我做了一个新的Windows 10安装,安装了python,cygwin和一个名为ConEmu的改进的控制台。 安装python 3.4.3后,我执行:

pip install -U pip 

并得到这个错误。

 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' 

我使用预定义的pipe理员帐户login,临时目录以及Python(C:\ Anwendungsentwicklung \ Python34)的安装目录具有完全访问权限。

请我通过设置不同的权利testing所有的变化,但Windows不会让我。 我甚至在安全选项卡中添加了“Everyone”,但是这并没有帮助,虽然我记得它是与Windows 7一起使用这个“技巧”。 这一定是Windows 10的问题。有人可以帮忙吗?

在这里输入图像说明


这是完整的追溯

  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' 

现在我在“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()) 

当我执行

 os.unlink(fullname) # 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-k7g0hd6t- uninstall\\anwendungsentwicklung\\python34\\scripts\\pip.exe' 

我得到这个PermissionError ,所以我检查了这个.exe文件的权利

 oct(os.stat(fullname)[ST_MODE]) 

它返回:'0o100777'

而当我是对的,这意味着完全许可每个人(所有者,团体和其他人)。

我感到沮丧:/有人想法?

正如这里所讨论的,这是一个Windows限制。 简而言之,pip.exe文件正在使用中,因此被锁定,无法删除。 使用python -m pip install --upgrade pip

我在同样的情况下的第一个选择是使用管理员权限启动控制台。 你可以从开始菜单或者使用ConEmu / Cmder,只需以管理员身份运行新的实例/选项卡。