由于 EnvironmentError 无法安装软件包:[WinError 5] 访问被拒绝:

Posted

技术标签:

【中文标题】由于 EnvironmentError 无法安装软件包:[WinError 5] 访问被拒绝:【英文标题】:Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 【发布时间】:2019-01-25 12:51:43 【问题描述】:

我有 Windows 10。我已完成安装 Tensorflow。有用。它说“你好 Tensorflow!”。但它拥有所有这些:

2018-08-18 18:16:01.500579: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 
2018-08-18 18:16:01.769002: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1405] Found device 0 with properties: name: GeForce GTX 950 major: 5 minor: 2 memoryClockRate(GHz): 1.3545 pciBusID: 0000:01:00.0 totalMemory: 2.00GiB freeMemory: 1.64GiB 
2018-08-18 18:16:01.774030: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1484] Adding visible gpu devices: 0 
2018-08-18 18:16:02.095489: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix: 
2018-08-18 18:16:02.099093: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0 
2018-08-18 18:16:02.100631: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:984] 0: N 
2018-08-18 18:16:02.102156: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1097] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1401 MB memory) -> physical GPU (device: 0, name: GeForce GTX 950, pci bus id: 0000:01:00.0, compute capability: 5.2) Hello Tensorflow!

Process returned 0 (0x0) execution time : 2.327 s Press any key to continue

当我在 cmb 中输入 pip3 install --upgrade tensorflow-gpu 时,无论是管理的还是普通的,我都会得到:

Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\users\\dylan\\appdata\\local\\programs\\python\\python35\\Lib\\site-packages\\numpy\\.libs\\libopenblas.BNVRK7633HSX7YVO2TADGR4A5KEKXJAW.gfortran-win_amd64.dll'
Consider using the `--user` option or check the permissions.

请帮帮我。不是计算机科学家或工程师。但我写代码是为了好玩。

【问题讨论】:

--user 添加到pip3 安装命令中。 我不明白为什么我们现在必须使用--user?因为这应该安装到用户目录中,这可能不是您想要的。 Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. (See the Python documentation for site.USER_BASE for full details.) 我真的不想安装到用户目录并以管理员身份运行 CMD 给我同样的错误。 在 pip3(或 pip)安装命令上使用 --user 或 -U 检查。一些图书馆不能识别其中之一,因此需要同时检查两者。一个会工作的。 pip install --upgrade tensorflow --user 为我工作 【参考方案1】:

如果您不想更改权限,只需键入您要使用用户权限执行的命令:

pip3 install --upgrade tensorflow-gpu --user

【讨论】:

@Chayan 为什么这行得通,而普通的 pip 安装却不行? 这对于那些理解的人来说可能是显而易见的,但是有人可以详细说明 --user 命令在执行代码时做了什么吗? 安装到用户目录让我所有的环境都使用那个包而不是他们自己的..! 我收到一个错误:错误:由于环境错误而无法安装软件包:[WinError 2] 系统找不到指定的文件:'c:\\python39\\Scripts\\tqdm.exe ' -> 'c:\\python39\\Scripts\\tqdm.exe.deleteme' 但是,添加 --user 后就解决了。 如果您尝试在虚拟环境下安装,此答案将毫无用处,您始终应该这样做。【参考方案2】:

使用--user 运行相同的命令。

【讨论】:

错误消息提示“考虑使用--user 选项或检查权限”。我已经添加了--user,它已经解决了 所以不管你使用没有'--user'的命令还是使用'--user'没有区别?因为你似乎假设... 是的,但有一点不同:该软件包将安装在 %userprofile% 中。 如果您尝试在虚拟环境下安装,则无用,您始终应该这样做。【参考方案3】:

只需更改要安装特定软件包的访问权限即可。

就我而言windows10

转到“C:\Program Files (x86)\Python37” 右键单击 Python37 文件夹并单击属性 转到“安全”选项卡并通过单击编辑按钮允许完全控制。 再次打开新的 cmd 终端并尝试再次安装软件包。

【讨论】:

特别是lib子文件夹【参考方案4】:

我发现如果我以管理员身份运行 CMD 并运行命令,我可以毫无问题地安装它。试试看,给我一些反馈。

【讨论】:

这和安装 Python 后重新启动对我有用。 这对我有用。奇怪的是,即使 Windows 终端作为管理员也不起作用。 为我工作。有趣的是,只有以管理员身份打开 CMD 有效,而以管理员身份打开 Git Bash 无效。 确实可行,奇怪的是 Windows PowerShell 作为管理员显示访问被拒绝消息并说安装失败,但它实际上也完成了这项工作 可能对我不起作用,因为我无法授予 cmd 完整权限【参考方案5】:

我正在将 tensorflow 升级到 1.4.0,因为这个错误没有解决,但最终解决了。你猜怎么着?

我的一个 python 脚本正在运行,它正在使用 tensorflow ??。 包关闭后安装成功。 ?

【讨论】:

同样的问题。 我想我也遇到了同样的问题。虽然我通过任务管理器杀死了所有 python 实例,但我能够在重新启动计算机后安装它。【参考方案6】:

我使用了这个命令,它成功了:

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

【讨论】:

【参考方案7】:

哦,天哪。这里有很多不好的答案。好意思但误导。 我通常可以很好地处理 Mac/Linux 上的权限。这些天来,Windows 对我来说是新的。这就是我遇到的问题。

    创建一个 virtualenv - 好的 activate 我的 virtualenv - 失败。需要 Scope 才能运行 powershell。 Windows 很有帮助,它会准确地告诉您运行 .ps 所需的命令。有点像 chmod 但执行 scope 我认为这很好。 现在,如果您已完成上述操作并安装了一些软件包,那就没问题了。直到你突然不能。然后你会得到这个权限错误。 您或其他进程对 pip 安装包的文件夹设置了权限。即...site-packages/ 在我的情况下,我怀疑它是 OneDrive 或某些权限继承。

理想的前进方式是检查权限。这很难,但你不是 Python 开发人员! 首先检查您自己的用户。

    whoami 例如我的电脑\vangel Get-Acl <path which is an issue> 在 Python 安装文件夹或您的 virtualenv 上右键单击并转到安全选项卡。单击高级并查看权限。我删除了所有继承的权限和其他用户等,并添加了我的 whoami 用户明确的完全权限。然后应用于所有对象。

在未验证以下步骤的情况下,请勿执行这些操作。仔细阅读邮件。

它绝不是可能影响您的所有权限问题的解决方案。我只能提供有关如何排除故障的指导,希望您能解决。

在任何地方都不需要设置--user 标志,如果它对你有用的话。但是你还是不知道出了什么问题。

更多步骤: 尝试删除一个包并安装它。 pip uninstall requests pip install requests 这可行,但我遇到了特定包的权限问题。

事实证明,当文件被进程锁定时,Windows 会给出权限错误。 Python 将其报告为[Winerror 5],无论如何我都无法轻易找到该文档参考。让我们测试一下这个理论。

我找到了获得权限错误的确切文件。点击删除。果然windowswindow提示它在python打开当然是了。

我在所有 python 上点击end task 它自 1996 年以来一直有效。但我等了几秒钟以防万一某个进程正在启动 python。检查Task manager 一切正常。

让 pip 安装特定的 azureml 包失败了 20 次,我确信这解决了它。

我运行了我的 pip 安装,它安装得非常好。

故事的寓意:在从 *** 复制粘贴之前了解您在做什么。一切顺利。

附言请停止以管理员身份安装 Python 或其软件包。自 2006 年以来,我们已经过去了

【讨论】:

在 Windows 10 上似乎没有什么对我有用。当我在具有管理员权限的 CMD 中运行 pip install pip --upgrade pip 以便在 virtualenv 中安装时,我收到错误消息 ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: 'C:\\Users\\FOO\\AppData\\Local\\Temp\\pip-uninstall-c3m4ipqf\\pip.exe' Check the permissions. 我也删除了所述临时文件夹中的所有子文件夹pip-*。没有帮助。对此有什么想法吗?【参考方案8】:

对于我(在 windows 中),我必须重新启动终端并以管理员身份运行它(如果您使用的是 pycharm 终端,只需关闭 pycharm,然后以管理员身份重新打开它,然后重试),这样就解决了问题并安装成功.

祝你好运

【讨论】:

【参考方案9】:

要安装 tensorflow,请使用此命令,包括 --User。

pip install --ignore-installed --upgrade --user tensorflow==2.0.1

这里2.0.1是tensorflow的版本。

【讨论】:

【参考方案10】:

在 Windows 中试试这个:

pip install -U

【讨论】:

这在 Windows 10 20H2 上使用 Python 3.8 为我解决了【参考方案11】:

当所有提到的方法都失败时,我可以按照官方网站https://scikit-learn.org/stable/install.html的说明安装scikit-learn

Windows 上文件路径长度限制导致的错误

如果 Python 安装在嵌套位置(例如用户主目录下的 AppData 文件夹结构),则可能会出现 pip 在达到 Windows 的默认路径大小限制时无法安装包的情况,例如:

Collecting scikit-learn
...
Installing collected packages: scikit-learn
ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\username\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\sklearn\\datasets\\tests\\data\\openml\\292\\api-v1-json-data-list-data_name-australian-limit-2-data_version-1-status-deactivated.json.gz'

在这种情况下,可以使用 regedit 工具解除 Windows 注册表中的限制:

在 Windows 开始菜单中键入“regedit”以启动 regedit。

转到Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 键。

编辑该键的 LongPathsEnabled 属性的值并将其设置为 1。

重新安装 scikit-learn(忽略之前损坏的安装):

pip install --exists-action=i scikit-learn

【讨论】:

【参考方案12】:

这应该可以工作

pip install --user requests

【讨论】:

为什么会这样。为您的答案提供更多解释。【参考方案13】:

这适用于我的情况:

pip install --user --upgrade pip

否则使用以管理员身份运行打开命令提示符并执行相同的操作。

【讨论】:

【参考方案14】:

如果您遇到此错误: Consider using the --user option or check the permissions. 然后运行以下代码:

pip install --user --upgrade pip

【讨论】:

【参考方案15】: 窗户 正常和新鲜的 Python 3.7 虚拟环境已激活 终端不需要管理员权限 不需要--user参数

只是:

py -m pip install --upgrade pip

成功了。

【讨论】:

【参考方案16】:

在windows中升级pip -

python -m pip install --upgrade pip

然后使用 --user 选项运行 pip install -

pip install --user package_name

解决了我的问题。

【讨论】:

【参考方案17】:

如果您使用的是 Windows,请通过完全控制当前用户来更改文件夹安全设置。它对我有用。

【讨论】:

【参考方案18】:

在搜索中键入 CMD,当命令提示符出现在 BEST MATCH 搜索结果中时,右键单击它并选择“以管理员身份运行”,当用户控制窗口出现时选择“是”。将出现命令提示符窗口,您应该会看到“C:/WINDOWS/system32>”

此时只需输入您想要的,应该可以工作!

【讨论】:

【参考方案19】:

我通过在管理模式下重新打开 cmd、激活虚拟环境并再次安装来解决此问题。

这是在虚拟环境中使用 Tensorflow 2.3.0。

【讨论】:

这不是问题的答案或解决方案。【参考方案20】:

正如错误中提到的没有 --user 所以你必须按照这些步骤操作

    打开 cmd 或 anaconda Navigator 打开你的 python 安装目录(对于 anaconda navigator 你已经指定了路径,比如 C:/cd Anaconda 最后是python -m pip install --user somepackagename

【讨论】:

@Miguel Silva 你能分享一下输出吗 已经解决了。你可以在下面找到我的答案。【参考方案21】:

试试这个。对我来说它有效。 pip install --user tensorflow

【讨论】:

【参考方案22】:

这应该可行。

pip install --user <package_name>

【讨论】:

【参考方案23】:

就我而言,我禁用了 McAfee,然后成功安装了 tensorflow2.0 RC

【讨论】:

【参考方案24】:

我在尝试使用 Anaconda 从 jupyter notebook 安装 tensorflow 时遇到了同样的问题。 --user 没有工作。

conda install tensorflow 为我工作,我无需更改任何安全设置。

【讨论】:

【参考方案25】:

使用此命令

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

【讨论】:

【参考方案26】:

我需要从需求文件安装并收到此错误,但不想使用 --user 选项,因为我不想将其安装到 @not2qubit 描述的位置.所以我以管理员身份运行 CMD,然后启用以下目录的共享右键单击 > 属性 > 共享 > 共享...):

C:\Users\<my user name>\AppData\Local\Temp

完成此操作后,我能够从我的需求文件安装到应用程序目录(我想要的位置)而不是疯狂的 ..\AppData 目录,而不会出现错误。

【讨论】:

有趣的解决方案。一般来说,我永远不会乱搞 Windows 属性,尤其是 共享​​>,因为如果不小心,它可能会触发各种服务。【参考方案27】:

如果您使用的是 Windows 10 20H2,请检查 pip3(或 pip)安装命令中的 --user 或 -U。一些图书馆不能识别其中之一,因此需要同时检查两者。一个会工作的。

pip3 install --user tensorflow-gpu

pip3 install -U gast==0.3.3

【讨论】:

【参考方案28】:

在我的例子中:命令--user 有效。

我已经使用这个命令安装了更新。

c:\python39\python.exe -m pip install --upgrade pip --user

【讨论】:

【参考方案29】:

使用提升的命令提示符可以创造奇迹。你所要做的就是运行

pip install &lt;package-name&gt;

具有管理权限。

【讨论】:

【参考方案30】:

这就是我解决这个问题的方法。

降级到 python 3.6.x 64 位。我安装的是3.6.8 64bit。

通过 pip install virtualenv 安装 virtualenv

将 pip 升级到最新版本,对我来说是 19.3

转到您要创建虚拟环境的文件夹并输入 virtualenv ENV 创建虚拟环境后,进入子文件夹\PATH\ENV\Script执行activate.bat。现在您将进入虚拟环境。

pip install rasa 问题是tensorflow 15需要64位python,不超过3.6

【讨论】:

以上是关于由于 EnvironmentError 无法安装软件包:[WinError 5] 访问被拒绝:的主要内容,如果未能解决你的问题,请参考以下文章

由于 EnvironmentError 无法安装软件包:[WinError 5] 访问被拒绝:

如何修复“由于 EnvironmentError 无法安装软件包:[WinError 123]”?

由于 EnvironmentError 无法安装软件包:[Errno 30] 只读文件系统:

由于 ec2 服务器中的 EnvironmentError 无法安装软件包

EnvironmentError: HTTPSConnectionPool 同时在 docker 容器上安装 pip

Python sklearn 安装窗口