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


77

使用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'

8
以管理员身份运行命令提示符。可能有帮助。在帐户中拥有管理员权限并不总是足够的。
罗普,2015年

谢谢罗普。这确实是问题所在。轻松解决,但令人沮丧的体验。
戴夫·曼斯菲尔德

3
在2018年仍然有意义:不要以管理员身份运行事物。更为明智的解决方案是用于virtualenv创建虚拟环境目录(“ virtualenv dirname”),然后在运行任何pip命令之前使用“ dirname \ Script \ Activate”激活该虚拟环境。这样,所有内容都会写入您具有完全写许可权的目录,而无需UAC,也不需要全局安装本地依赖项。
Mike'Pomax'Kamermans

1
当我在管理员模式下运行cmd时,它对我有用。
Zeinab

可能是“用户”组没有写/修改C:驱动器的权限,即使您以管理员身份登录,也会弹出此错误,因此您可以检查“用户”组的C:驱动器的权限。
Mikhail V

Answers:


81

E:由于这个答案似乎已经很流行了,所以我要补充:在大多数情况下,在全球范围内做事情不是一个好主意。几乎总是正确的答案是:在项目环境中不要在全局范围内进行安装,例如使用virtualenv


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

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


2
如果您没有管理员权限/不想管理员权限:stackoverflow.com/questions/7465445/...
Gladclef

58
即使在管理员模式下,它仍然会发生
杰夫(Jef)

5
在2018年仍然有意义:更为明智的解决方案是使用“ virtualenv dirname”创建一个virtualenv,然后在运行任何pip命令之前使用“ dirname \ Script \ Activate”将其激活。
Mike'Pomax'Kamermans

2
当尝试使用命令“ python -m pip install --upgrade pip”升级pip以及尝试使用命令“ pip install numpy”安装numpy时,遇到相同的错误消息“ PermissionError:[WinError 5]访问被拒绝” 。我按照上述方法通过以Administrator身份打开并运行cmd窗口,并运行了上述安装。有效。
路加五世

对于那些仍然在2018年问自己自己的人,为什么virtualenv有比pip以管理员身份运行更明智的解决方案:“一切似乎都很好,但是我们在不知不觉中造成了灾难!” dabapps.com/blog/introduction-to-pip-and-virtualenv-python
Egalth,

53

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

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

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

希望这对像我这样的人会有所帮助,他们将在未来几天内打开这个较旧但有用的帖子


1
谢谢,这帮助了我。另外,我发现Spyder坏了,因为我之前尝试过。如github.com/spyder-ide/spyder/issues/6426
Joris

8
我有一个正在运行的jupyter笔记本。关闭它可以解决问题。
typhon04 '08 / 08/29

1
我也有这个问题,我只是关闭了已经在运行的窗口,然后再次尝试,这解决了pbm
SaddamBinSyed

1
在网上搜索了20分钟,这是唯一对我有用的东西!谢谢。
Ibrahim Awad

这有效,我在另一个会话中运行了jupyter笔记本。杀死它之后,我可以将其卸载。
noobie

21

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

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

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

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

2
对于我来说,这是mac和Windows中的解决方案。谢谢
pbou

在Windows虚拟机中工作。后来能够点安装。丹科
eyeknownothing

7

对于那些遇到此问题并以管理员身份运行命令提示符的用户无效这:

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


2
在Windows 10和Anaconda上,这对我不起作用。删除所有C:\\Users\\...\\AppData\\Local\\Temp\\pip-unpack-内容对我没有任何改变。
Josiah Yoder

1
这个。特别是在加入域的mwin机器上
Glen020 '19

6

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


4
我设法通过IDE(PyCharm)做到了。我只是在管理员模式下重新启动了PyCharm本身。
亚当·托斯

5

从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)


谢谢。因此,问题在于,由于将pip作为程序执行,因此无法暂时移动它!
一张脸

5

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


禁用“ Host IPS”可以帮助我。谢谢!
amaslenn

5

看到之后

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。简而言之,虚拟环境无法解决此问题。


4

TL; DRpython -m pip install -U pip,然后再试一次。


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

创建它时,我单击了inherit global site packages复选框,以允许通过安装程序安装的软件包起作用。现在在我的电脑venv里没有pip安装,所以它将使用继承的global 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

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

(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

谢谢..为我工作。:)
Harsha Biyani

2

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


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

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

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

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


1

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

目前更明智的解决方案是使用的virtualenv创建虚拟环境目录(virtualenv dirname),然后激活虚拟环境与dirname\Script\Activate在Windows中运行任何点子命令之前。或使用pipenv为您管理安装。

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


1
这是您在同一问题中第三次发布此建议/评论。我很佩服你的坚持,但是有什么意义呢?
Juliusz

鉴于Windows用户权限模型,也许您应该使用virtualenv,而我评论的其他答案是相当疯狂的。即使这是一个有旧答案的老问题,如果答案不再适用于“现在”,也要留下新的评论(尽管诚然,即使在2015年,答案确实是“使用virtualenv”)。真正的坏建议比没有建议更糟糕,请在看到会导致灾难的答案(或其他评论)时留下评论。
Mike'Pomax'Kamermans

老实说,像我这样的一些用户不需要安装多个python。我们非常高兴地运行单个安装,并且可以很好地管理依赖项,而且,如果我们的唯一目标是使用单个python安装,则无需激活额外的“ virtualenv”命令。我感到困惑的是,为什么必须使用像这样的默认Python Windows安装程序问题仍然存在。如果不支持在Windows上本机运行python,则官方安装程序应这样说,否则,仅需解决此问题的特定方法即可。
user4779

然后,我希望您不再需要运行任何其他人的代码,这在您运行pip进行全局安装产生版本冲突。这完全与“纯粹主义者”有关,并且与在生态系统中应用有关冲突软件需求的一些常识有关,在生态系统中,该问题已以尽可能非侵入性的方式得到解决(吹笛并不完美,但是比手动安装每个需求要好得多,因为手动安装/卸载每次运行其他人的代码时都会发生冲突的软件包)。
Mike'Pomax'Kamermans

1

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

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



0

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


0

嗨,您能尝试一下这行对我有用吗

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


0

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


-1

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

Windows 10 Pro x64用户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.