在 Windows 上 pip 安装访问被拒绝
Posted
技术标签:
【中文标题】在 Windows 上 pip 安装访问被拒绝【英文标题】:pip install access denied on Windows 【发布时间】:2015-09-19 06:47:55 【问题描述】:我正在尝试在 Windows 上运行 pip install mitmproxy
,但我一直被拒绝访问,即使使用 Run as Administrator
选项使用 cmd
和 PowerShell
。
WindowsError: [Error 5] Access is denied: 'c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6u\\cryptography-0.9.1\\.eggs\\cffi-1.1.2-py2.7-win-amd64.egg\\_cffi_backend.pyd'
我怎样才能做到这一点?
【问题讨论】:
还有一个不错的老帖子:any idea how to update python PIP on a windows box? 【参考方案1】:对于 Windows,在 命令提示符(管理员) 中尝试使用 Python 可执行文件运行 pip install
:
python -m pip install mitmproxy
这应该可以,至少它对我的其他软件包安装有用。
【讨论】:
无论出于何种原因,临时文件的权限都不能完全控制我的用户。通过python -m
的这条路线有所不同。
我们知道为什么这行得通吗?而不是通过powershell?
是的,@BigMoney 我非常怀疑为什么它对这些用户有效:他们被授予运行 Python 的权利,但没有运行 PIP 的权利。使用 Python,您可以传递 -m 标志来指定要运行的 Python 模块。 PIP 是一个 Python 模块,因此可以通过这种方式传递。但这适用于任何可以直接运行的 Python 模块。例如,尝试python -m http.server 8000
,您将看到您现在在本地计算机上的 8000 端口上运行了一个 HTTP 服务器。【参考方案2】:
通过以下方式更改 Python 安装文件夹的安全权限:
-
打开 Python 外壳
进入任务管理器
找到python进程
右键单击并打开位置
文件夹将在资源管理器中打开,上一个目录
右键单击文件夹并选择属性
点击安全标签并点击“编辑”
添加所有人并授予他们读写权限。
保存更改
如果您以管理员身份打开cmd
;那么您可以执行以下操作:
如果你的PATH
中设置了Python,那么:
python -m pip install mitmproxy
【讨论】:
我必须为所有应用程序包和用户都这样做,但后来它奏效了。 完美运行。非常感谢! 类似努力的替代路线:1) 安装 Linux 2)sudo pip install foo
@Chronicle 你真的让每个人都可以读写用户配置文件吗?如果是,这是一个非常糟糕的主意(非常糟糕)。
@Richard 在 Python 的目录中添加读写权限如何解决用户temp
目录中权限被拒绝的问题?我想说这是执行pip
(python -m pip
而不是@nayak 建议的pip
)的方式有什么帮助,之前的这9个步骤很可能无关紧要(因为它真的没有任何意义)。
【参考方案3】:
就个人而言,我发现通过以 admin 身份打开 cmd
然后运行
python -m pip install mitproxy
似乎解决了我的问题。
注意:-我是通过chocolatey
安装python的
【讨论】:
你拯救了我的一天,兄弟! 如果您以管理员身份运行cmd
,您应该能够正常运行pip install [package]
。无论如何都为我工作。【参考方案4】:
以前的答案中未涵盖的另一件事是,尽管以管理员身份运行,但通常会在 Windows 上导致问题并阻止我安装某些软件包,如果存在 相同的权限被拒绝错误是另一个使用您(或pip install
)尝试访问的文件的程序。这是 Windows 的一个非常愚蠢的“功能”,它会弹出很多次,例如尝试移动某些文件时。
此外,我不知道如何确定哪个程序锁定了特定文件,所以最简单的方法是在开始任何操作之前重新启动并进行安装,特别是在运行之前,例如Spyder 或任何其他基于 Python 的软件。您也可以尝试关闭所有程序,但要知道哪个程序实际保存了文件可能会很棘手。例如,对于一个目录,在该目录打开一个资源管理器窗口就足够了。
【讨论】:
是的,我成功了!我同时在 Git Bash、Pycharm 终端和 Windows 终端中工作,在关闭了三个中的两个之后一切正常。【参考方案5】:因为,我是通过 anaconda Prompt 安装的。就我而言,它甚至不适用于 python -m pip install
然后,我添加了这个
python -m pip install <package_name> --user
它对我有用。
点赞:python -m pip install mitmproxy --user
另一个您应该尝试以 以管理员身份运行 身份运行命令提示符,然后尝试 pip install。它也应该可以工作。
【讨论】:
这对我在学校安装 python 包(在本例中为 sympy)很有用。谢谢! 没有系统管理员权限时的最佳解决方案。 终于成功了! 没有其他东西对我有用,但对于这个命令,我收到以下错误 -ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
有什么帮助吗?【参考方案6】:
用“以管理员身份运行”打开cmd,执行命令pip install mitmproxy
。它会安装它。
【讨论】:
【参考方案7】:在我的情况下,原因是打开了一个 jupyter notebook,它正在导入相关的库;根本原因似乎是由于文件正在打开/正在使用而导致的 Windows 错误(另请参阅@Robert 的回答,以及重新启动的建议)。
所以要验证的另一件事是没有其他 python 进程正在运行。
对我来说,关闭笔记本服务器解决了这个问题。
【讨论】:
【参考方案8】:尝试授予完全控制python文件夹的权限。
找到python根目录-->右键单击-->属性-->安全-->编辑-->给用户完全控制-->是的,等待过程完成。
它对我有用。
【讨论】:
【参考方案9】:尝试手动删除文件夹c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6u
,然后重试 pip 命令。
【讨论】:
谢谢。一些临时 pip 文件阻止了安装。【参考方案10】:以管理员身份打开命令提示符只是为我工作而无需使用 Python 可执行文件。 右键单击命令提示符快捷方式,然后选择“以管理员身份运行”。 然后运行以下命令。
pip install Django
【讨论】:
对我来说也一样——只需要以管理员身份运行 cmd。【参考方案11】:当所有其他方法都失败时,请尝试退出您的 IDE。我有很多案例是 PyCharm 造成这种情况的。一旦我退出 PyCharm,我终于可以从命令行安装我的包了。或者,您也可以通过 PyCharm 本身在 Settings -> Project: xxx -> Project Interpreter -> + 中安装。
【讨论】:
我在关闭 Spyder 之前遇到了同样的问题【参考方案12】:以管理员身份打开命令提示符。
要安装任何 Python 包,请使用此命令,包括 --user
。
pip install --ignore-installed --upgrade --user <packagename>
【讨论】:
【参考方案13】:以管理员身份运行 cmd.exe 然后输入:
python -m pip install
【讨论】:
【参考方案14】:我也遇到了类似的问题,但是报错是关于
[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)
首先我尝试了这个https://python-forum.io/Thread-All-pip-install-attempts-are-met-with-SSL-error#pid_28035,但似乎它无法解决我的问题,并且仍然重复同样的问题。
其次,如果你是在商务电脑上工作,一般可能存在网页内容过滤器(但我可以通过浏览器直接访问https://pypi.python.org)。通过添加代理服务器来解决这个问题。
对于windows,通过IE或Chrome或其他任何方式打开Internet properties
,然后设置有效的proxy address and port,这样就解决了我的问题
或者只是添加选项pip --proxy [proxy-address]:port install mitmproxy
。但是你在通过pypi安装时总是需要添加这个选项
以上两种解决方案可以满足您的需求。
【讨论】:
【参考方案15】:就我而言,它甚至不适用于python -m pip install
我所做的是,从 cmd 作为管理员:
PsExec.exe -i -s -d cmd.exe
为了产生一个 SYSTEM cmd,然后 pip install mitmproxy
;)
【讨论】:
【参考方案16】:以管理员身份运行 cmd 为我解决了问题。你也可以试试 --user。 如果您不想重复这些步骤,您需要授予对 anaconda 文件夹的完全访问权限。
【讨论】:
【参考方案17】:安装pycaret
时遇到同样的问题。
我用两种不同的方式解决了(我将在下面列出)。
选项 1
升级点与
python -m pip install --user --upgrade pip
然后
pip install --user pycaret[full]
找到了关于错误here的相关讨论。
选项 2
假设一个人正在使用 Anaconda,打开 Anaconda 提示符,作为一个正在使用的环境,以管理员身份
然后运行
pip install --user pycaret[full]
或
pip install pycaret[full]
【讨论】:
【参考方案18】:只需关闭所有打开的 python 文件。并尝试以管理员身份运行。它会起作用的。
例如
pip install mitmproxy
【讨论】:
以上是关于在 Windows 上 pip 安装访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
windows 无法在本地计算机上启动服务错误 5 访问被拒绝
带有安全管理器的 Tomcat 9.0 在 Windows 上报告访问被拒绝
用户“root@localhost”的访问被拒绝(使用密码:否)
在 Linux 上使用无头 Chrome 访问被拒绝页面,而有头 Chrome 通过 Python 使用 Selenium 在 Windows 上工作