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

2024-12-30 08:41:00
admin
原创
62
摘要:问题描述:使用 PIP 安装新软件包或将 pip 本身升级到最新版本时,出现以下错误。我在装有 Python 3.4 的 Windows 8.1 计算机上运行 pip。该消息告诉我我没有该文件的管理权限(我的帐户是管理员帐户)。我将非常感激任何关于如何解决这个问题的想法,因为它妨碍了安装软件包和使用 Pyth...

问题描述:

使用 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)pythonpython34libsite-packagespip-6.0.8.dist-infodescription.rst
      Cleaning up...
Exception:
Traceback (most recent call last):
  File "C:Program Files (x86)PythonPython34libshutil.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)PythonPython34libsite-packagespipasecommand.py", line 232, in main
    status = self.run(options, args)
  File "C:Program Files (x86)PythonPython34libsite-packagespipcommandsinstall.py", line 347, in run
    root=options.root_path,
  File "C:Program Files (x86)PythonPython34libsite-packagespip
eq
eq_set.py", line 543, in install
    requirement.uninstall(auto_confirm=True)
  File "C:Program Files (x86)PythonPython34libsite-packagespip
eq
eq_install.py", line 667, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "C:Program Files (x86)PythonPython34libsite-packagespip
eq
eq_uninstall.py", line 126, in remove
    renames(path, new_path)
  File "C:Program Files (x86)PythonPython34libsite-packagespip/utils__init__.py", line 316, in renames
    shutil.move(old, new)
  File "C:Program Files (x86)PythonPython34libshutil.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'

解决方案 1:

E:由于这个答案似乎已经获得了一些欢迎,我要补充一点:全局执行操作大多数时候都不是一个好主意。几乎总是正确的答案是:使用您不会全局安装东西的项目环境,例如使用virtualenv


对于那些可能遇到同样问题的人:

以管理员身份运行命令提示符。帐户中拥有管理员权限并不总是足够的。在 Windows 中,可以通过右键单击可执行文件并选择“以管理员身份运行”来以管理员身份运行。因此,在“开始”菜单中输入“cmd”,右键单击 cmd.exe,然后以管理员身份运行它。

解决方案 2:

我知道我的回答可能很奇怪但这就是我刚才的经历。

我在安装 tensorflow 包时遇到了类似的错误,我尝试以管理员身份在 Windows 中打开 powershell 来进行同样的操作,但无济于事。

后来我发现我已经在活动的 Python 会话中的一个 Python 脚本中使用了 numpy。因此,我关闭了 Spyder IDE,并尝试通过以管理员身份运行 powershell 来安装 tensorflow 包,并且成功了。

希望这能帮助像我一样的人,他们将在未来几天打开这篇较旧但有用的帖子。

解决方案 3:

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

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

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

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

解决方案 4:

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

由于我已经尝试过第一次不以管理员身份运行 cmd 提示符,因此在我的c:\Users\"USER"\AppData\Local\Temp文件夹中,我发现它正在尝试从同一个pip-u2e7e0ad-uninstall文件夹运行文件。从Temp文件夹中删除此文件夹并重试安装解决了这个问题。

解决方案 5:

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

解决方案 6:

从 Python 3.4 上的 pip 7.xx 升级到 8.xx(以获得 *.whl 支持)。

错误命令:(
pip install --upgrade pip无法将 pip.exe 移动到临时文件夹,权限被拒绝)

OK 变体:(
py -3.4 -m pip install --upgrade pip不执行 pip.exe)

解决方案 7:

看到后

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-32python.exe -m pip install -U pip

运行该精确命令后,它就起作用了。

对于那些提倡使用虚拟环境来解决此错误的人来说,必须在主安装中更新 pip 和 virtualenv。简而言之,虚拟环境无法解决这个问题。

解决方案 8:

我在 Windows 上使用 Anaconda 时也遇到了同样的问题。看来 McAfee 防病毒软件存在问题。如果您在运行更新或安装时停用它,它允许您运行安装。

解决方案 9:

TL;DR:, python -m pip install -U pip然后再试一次。


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

创建它时我单击了inherit global site packages复选框,以允许通过安装程序安装的包工作。现在我的里面venv没有pip安装,所以它会使用继承的全局pip

错误发生的过程如下:

(venv) D:path    omyproject> pip install certifi  # or any other package

会失败

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

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

这里还有更多挖掘:

(venv) D:path    omyproject> which pip
/c/Program Files/Python36/Scripts/pip

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

那么 python 使用的路径正确,而 pip 却不正确?让我们也以正确的方式安装 pip:

(venv) D:path    omyproject> python -m pip install -U pip
... does stuff ...
Successfully installed pip

现在好多了。再次运行原始失败的命令现在可以正常工作,因为它使用了正确的 pip。

(venv) D:path    omyproject> 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

解决方案 10:

在 2018 年仍然有意义:不要以管理员身份安装软件包。

迄今为止更明智的解决方案是使用virtualenv创建虚拟环境目录 ( virtualenv dirname),然后dirnameScriptActivate在运行任何 pip 命令之前在 Windows 中激活该虚拟环境。或者使用pipenv为您管理安装。

这样,所有内容都会写入您具有完全写权限的目录,而无需 UAC,也无需对本地目录进行全局安装。

解决方案 11:

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

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

解决方案 12:

在虚拟环境中升级 pip 时在 Windows 上遇到了这个问题,因此在加载的 venv 中尝试

python -m pip install --upgrade pip

而不是使用普通命令

pip install --upgrade pip #X

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

解决方案 13:

我在不同时间遇到的这个错误和误导今天得到了解决,灵感来自上面的正在运行的笔记本评论......我让 PyC​​harm 同时更新我新安装的环境/包上的骨架!关闭 PyCharm 并重新运行 pip install 就可以了(从我的 anaconda 提示符中)!!

解决方案 14:

当我使用 pycharm 创建和运行虚拟环境时,我遇到了这个问题 - 我单击了“继承全局站点包”复选框 - 删除并重新创建 venv 为我解决了这个问题。如果您使用其他方法创建 venv,请确保它没有继承全局包!
在此处输入图片描述

解决方案 15:

我遇到了同样的错误。不知道为什么会这样。但我设法通过运行以下命令进行了升级:

pip install setuptools --upgrade --ignore-installed

之后,我使用管理员模式下的 aPowerShellCommand Prompt-cmd 来安装该包:

pip install the-package

# or
easy_install the-package

此外,他们已经建议:使用 pip 和虚拟环境安装包,这是新项目的最佳实践。

解决方案 16:

我遇到了同样的问题并按照以下步骤解决了它。

  1. 我将路径添加到“系统环境变量”中。

  2. 我更改了“注册表编辑器”。为此,请在运行中输入“regeidt”,然后打开“注册表编辑器”。转到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem”,选择“LongPathsEnabled”,将“Valuedata”更改为“1”,按“确定”,然后重新启动计算机。

  3. 以“管理员”身份运行“命令提示符”并输入“pip install scikit-learn”。

解决方案 17:

就我而言,当我进入 AppData 文件夹的属性时,有两个复选框被选中 - 一个是“只读”,一个是“隐藏”。我取消选中了“隐藏”选项。处理过程花了 5 分钟。之后,我能够在管理员模式下从 cmd 成功安装软件包。

解决方案 18:

以下对我有用

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

解决方案 19:

在 Windows 10 中的 venv 中工作时,我在 VS Code 中使用 PowerShell 终端时收到错误。使用命令提示符终端 pip 时已成功升级。

解决方案 20:

升级我的 Python 安装(使用 scoop)后,我遇到了类似的问题。我的情况是pip 配置混乱:

pip config list                                                                                                   
global.target='C:/Program Files/Python310/Lib/site-packages'
global.trusted-host='pypi.python.org
pypi.org
files.pythonhosted.org'

所以我不得不手动编辑global.targetpip 配置。

pip config set global.target C:Users[User]scoopappspythoncurrentLibsite-packages

解决方案 21:

我刚刚遇到了类似的问题。

ERROR: Could not install packages due to an OSError: [WinError 5]  Access is denied: 'C:\\Users\\Lenovo\\Documents\\STUDIES\\venv\\Lib\\site-packages\\matplotlib\\ft2font.cp311-win_amd64.pyd'
Check the permissions

当我尝试重新安装 matplotlib 包时发生了错误。此外,我的 VS Code 正在运行,打开了 jupyter 笔记本,其中一个单元格包含:

import matplotlib as plt

解决方案是关闭 VS Code。

重点是,也许尝试关闭所有使用您要安装的包的程序

解决方案 22:

TL;DR:在升级 pip 之前,请删除并重新创建venv


大多数答案建议使用命令修复该问题:python -m pip install --upgrade pip
总的来说,这是正确的解决方案,但有一些注意事项。

使用通用 Python 环境是一种不好的做法。好的做法是每个项目都使用虚拟环境。此答案适用于遇到此Permission denied问题并使用的人venv

我搞砸了,venv直到升级 pip 命令出现Unable to locate pip command错误。我的解决方案是:

  1. venv从项目中删除现有的。

  2. 创建新的venv

  3. python -m pip install --upgrade pip

  4. 安装项目所需内容。就我的情况而言pip install -r requirements.txt,你也可以手动安装软件包。

解决方案 23:

我在 2024 年的 Windows 机器上遇到了这个问题,上述解决方案都不起作用。

为我解决这个问题的方法是检查我的venv和的权限project directory。不知何故,它被标记为read-only。取消选中该read-only框后,我能够找到pip install丢失的软件包。

目录属性

解决方案 24:

以防万一,对于一些来自谷歌搜索的随机用户,请务必检查您的环境变量是否正确。例如,如果您有

set CUDA_PATH="c:path    ocuda"

而不是

set CUDA_PATH=c:path    ocuda

您的NVlabs/nvdiffrast将成功构建,但ashawkey/diff-gaussian-rasterization将失败并出现确切的[WinError 5]代码。

最糟糕的是,你永远不知道你的 ENV 是否处于正确状态或是否缺少某些内容。你也不知道哪个数据包使用了哪个变量。

所以,这只是另一种选择,可能会出现什么问题,而不是答案,如何解决问题。

解决方案 25:

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

Windows 10 Pro x64 用户。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1000  
  华为作为全球领先的信息与通信技术(ICT)解决方案提供商,其全球化项目的成功离不开高效的项目管理方法。其中,集成产品开发(IPD)流程是华为项目管理体系的核心组成部分。IPD流程不仅帮助华为在复杂的全球化项目中实现了资源的高效整合,还通过跨部门协作和持续优化,确保了项目的高质量交付。本文将通过具体案例,分析华为IPD流...
IPD测试流程   0  
  IPD(Integrated Product Development)是一种以跨职能团队协作为核心的产品开发流程,旨在通过整合资源、优化流程和提高决策效率,实现产品从概念到市场的快速、高效交付。IPD流程的核心思想是将传统的串行开发模式转变为并行开发模式,通过跨部门协作和早期风险识别,减少开发周期中的浪费和返工。这种方...
IPD流程分为几个阶段   0  
  华为的集成产品开发(IPD)流程是企业项目管理中的经典实践,其核心在于通过跨部门协同实现高效的产品开发。IPD流程强调从市场需求到产品交付的全生命周期管理,而跨部门沟通则是这一流程成功的关键。在华为的实践中,跨部门沟通不仅仅是信息的传递,更是团队协作、目标对齐和资源整合的重要手段。本文将深入探讨IPD流程中的跨部门沟通...
IPD项目管理咨询   0  
  IPD流程全称是集成产品开发(Integrated Product Development),它是一种以客户需求为导向、跨部门协作的产品开发模式。与传统产品开发模式相比,IPD强调在产品开发的早期阶段就整合市场、研发、制造、采购等多个部门的资源和能力,通过并行工程和协同工作来提升开发效率。IPD流程的核心在于打破部门壁...
IPD产品开发流程   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用