Python - PIP安装故障排除 - PermissionError:[WinError 5]访问被拒绝

时间:2015-08-23 13:57:25

标签: python windows pip

使用PIP安装新软件包甚至将pip本身升级到最新版本时出现以下错误。我在使用Python 3.4的Windows 8.1机器上运行pip。

该消息告诉我我没有文件的管理权限(我的帐户是管理员帐户)。

我很感激有关如何解决这个问题的任何想法,因为它妨碍了安装包和使用Python的进展。

错误讯息:

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'

20 个答案:

答案 0 :(得分:39)

我知道我的答案会很奇怪,但这就是我刚才所经历的。

我在安装tensorflow软件包时遇到了类似的错误,我尝试在Windows中以管理员身份打开PowerShell但是徒劳无功。

后来我发现我在一个活跃的python会话中的一个python脚本中已经使用了numpy。所以我关闭了Spyder IDE并尝试通过以管理员身份运行powershell来安装tensorflow包,并且它有效。

希望这会帮助像我这样的人在未来几天打开这篇较旧但有用的帖子

答案 1 :(得分:6)

即使您是从管理员运行的,如果将pip安装在另一个用户空间中,它也可能无法解决问题。这是因为管理员不拥有另一个人的用户空间目录,因此他看不到(进入)某人拥有的目录的内部。以下是确切的解决方案。

python -m pip install -U pip --user //It solves in Windows. Note: You should provide --user option

pip install -U pip --user //Linux, and MacOS

答案 2 :(得分:6)

对于遇到此问题的人并以管理员身份运行命令提示符不起作用这对我有用:

由于我第一次尝试没有以管理员身份运行cmd提示,因此在我的 c:\ Users \" USER" \ AppData \ Local \ Temp 文件夹中找到了它试图从同一个 pip-u2e7e0ad-uninstall 文件夹中运行文件。从 Temp 文件夹中删除此文件夹并重试安装会为我解决问题。

答案 3 :(得分:5)

从Python 3.4上的pip 7.x.x升级到8.x.x(* .whl支持)。

错误的命令: 0 * 4 (无法将pip.exe移动到临时文件夹,允许拒绝)

确定变体: pip install --upgrade pip(不要执行pip.exe)

答案 4 :(得分:5)

不要在IDE中使用命令提示符。以管理员身份从Windows运行命令提示符。我相信这会解决问题。如果没有,请卸载pip并直接重新安装最新版本。

答案 5 :(得分:4)

我在Windows上遇到了与anaconda相同的问题。似乎有一个mcAfee防病毒发布。如果在运行更新或安装时停用它,则可以正确运行安装。

答案 6 :(得分:2)

2018年仍然相关:不要以管理员身份安装软件包。

到目前为止更明智的解决方案是使用virtualenv创建虚拟环境目录( <!DOCTYPE html> <html> <head> <title>Page Title</title> <meta charset="utf-8" /> <style> #divid { height: 600px; width: 300px; border: 2px solid black; transform: scale(0.5, 0.5); } </style> </head> <body> <iframe id="iframe" src="http://www.google.com/" > </iframe> <script src="http://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script> <script> var iframepos = $("#iframe").position(); $('#iframe').contents().find('html').on('mousemove', function (e) { var x = e.clientX + iframepos.left; var y = e.clientY + iframepos.top; console.log(x + " " + y); }) </script> </body> </html> ),然后使用virtualenv dirname激活该虚拟环境Windows在运行任何pip命令之前。或者使用pipenv为您管理安装。

这样,所有内容都会被写入您拥有完全写入权限的dirs,而不需要UAC,并且没有本地目录的全局安装。

答案 7 :(得分:2)

我在Windows 10上也遇到过这个问题。关闭我所有的Jupyter Notebook会话并以管理员身份重新运行pip install --upgrade命令会使问题消失。

答案 8 :(得分:2)

TL; DR python -m pip install -U pip,然后重试。


我已经在PyCharm中使用了venv(virtualenv)。

创建它时,我单击了inherit global site packages复选框,以允许通过安装程序安装的软件包起作用。 现在在我的venv内没有安装pip,因此它将使用继承的全局pip

以下是错误的处理方式:

(venv) D:\path\to\my\project> pip install certifi  # or any other package

会失败

PermissionError: [WinError 5] Access denied: 'c:\\program files\\python36\\Lib\\site-packages\\certifi'

请注意,这是系统python的路径,而不是venv的路径。 但是,我们希望它在正确的环境中执行。

这里有更多挖掘的地方:

(venv) D:\path\to\my\project> which pip
/c/Program Files/Python36/Scripts/pip

(venv) D:\path\to\my\project> which python
/d/path/to/my/project/venv/Scripts/python

因此python使用的是正确的路径,但pip不是吗? 让我们在此处也以正确的方式安装pip:

(venv) D:\path\to\my\project> python -m pip install -U pip
... does stuff ...
Successfully installed pip

现在更好了。 现在,再次运行原始的失败命令即可,因为它使用的是正确的pip。

(venv) D:\path\to\my\project> pip install certifi  # or any other package
... install noise ...
Successfully installed certifi-2019.9.11 chardet-3.0.4 idna-2.8 requests-2.22.0 urllib3-1.25.7

答案 9 :(得分:2)

python -m pip install -U pip --user //In Windows 

注意:您应提供--user选项

pip install -U pip --user //Linux, and MacOS

或者,在管理员模式下运行cmd。

答案 10 :(得分:1)

看到

之后
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

我跑了

pip install -U pip

并点击此错误

PermissionError: [WinError 5]

我再次尝试了

pip install -U pip
ERROR: To modify pip, please run the following command:
c:\python36-32\python.exe -m pip install -U pip

运行完确的命令后,它就可以了。

对于那些促进使用虚拟环境作为此错误的解决方案的人,必须在主安装中更新pip和virtualenv。简而言之,虚拟环境无法解决此问题。

答案 11 :(得分:1)

只需在管理员模式下运行cmd。

答案 12 :(得分:1)

请注意,如果要通过Anaconda安装它,则需要以管理员身份打开Anaconda,然后从那里启动命令提示符。

否则,您也可以直接以管理员身份运行“ Anaconda提示符”以卸载和安装软件包。

答案 13 :(得分:1)

嗨,你能不能尝试一下这行对我有用?

python -m pip install --user --upgrade pip

答案 14 :(得分:0)

当我使用pycharm创建和运行虚拟环境时遇到了这个问题-单击“继承全局站点程序包”复选框-删除并重新创建venv为我解决了这个问题。如果您使用其他方式创建venv,请确保它没有继承全局软件包! enter image description here

答案 15 :(得分:0)

以管理员身份运行命令提示符并使用'--user'标志 例如。 pip install --user --upgrade熊猫

答案 16 :(得分:0)

我也有同样的错误。不知道为什么会这样。但我设法通过运行升级:

pip install setuptools --upgrade --ignore-installed

之后,我在管理员模式下使用 PowerShellCommand Prompt - cmd 安装软件包:

pip install the-package

# or
easy_install the-package

另外,他们已经建议:Installing packages using pip and virtual environments,这是新项目的最佳实践。

答案 17 :(得分:0)

我遇到了同样的问题,我使用这些步骤来解决它。

  1. 我将路径添加到“系统环境变量”中。
  2. 我更改了“注册表编辑器”。 为此,请在运行中键入“regeidt”,然后打开“注册表编辑器”。转到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem”,选择“LongPathsEnabled”并将“Valuedata”更改为“1”按“Ok”,然后重新启动计算机。
  3. 以“管理员”身份运行“命令提示符”并输入“pip install scikit-learn”。

答案 18 :(得分:0)

在虚拟环境中升级 pip 时在 windows 上遇到此问题 所以在加载的 venv 中尝试

python -m pip install --upgrade pip

而不是像使用普通命令

pip install --upgrade pip #X

这里不能使用 --user,因为我们在 venv 中

答案 19 :(得分:-1)

只需在另一个文件夹中重新安装Python,例如c:\python。之后,您将不会被pip想要的管理员特权所困扰。

Windows 10 Pro x64用户。