首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pip卸载上的PermissionError

pip卸载上的PermissionError
EN

Stack Overflow用户
提问于 2022-03-24 17:30:26
回答 2查看 679关注 0票数 2

我可以安装一个软件包:

代码语言:javascript
复制
pip install brotli

但如果我试图移除它,它就失败了:

代码语言:javascript
复制
PS D:\Desktop> pip uninstall -y brotli
Found existing installation: Brotli 1.0.9
Uninstalling Brotli-1.0.9:
  Successfully uninstalled Brotli-1.0.9
ERROR: Exception:
Traceback (most recent call last):
  File "C:\python\lib\site-packages\pip\_internal\cli\base_command.py", line 167, in exc_logging_wrapper
    status = run_func(*args)
  File "C:\python\lib\site-packages\pip\_internal\commands\uninstall.py", line 102, in run
    uninstall_pathset.commit()
  File "C:\python\lib\site-packages\pip\_internal\req\req_uninstall.py", line 420, in commit
    self._moved_paths.commit()
  File "C:\python\lib\site-packages\pip\_internal\req\req_uninstall.py", line 273, in commit
    save_dir.cleanup()
  File "C:\python\lib\site-packages\pip\_internal\utils\temp_dir.py", line 173, in cleanup
    rmtree(self._path)
  File "C:\python\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 326, in wrapped_f
    return self(f, *args, **kw)
  File "C:\python\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 406, in __call__
    do = self.iter(retry_state=retry_state)
  File "C:\python\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 362, in iter
    raise retry_exc.reraise()
  File "C:\python\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 195, in reraise
    raise self.last_attempt.result()
  File "concurrent\futures\_base.py", line 439, in result
  File "concurrent\futures\_base.py", line 391, in __get_result
  File "C:\python\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 409, in __call__
    result = fn(*args, **kwargs)
  File "C:\python\lib\site-packages\pip\_internal\utils\misc.py", line 124, in rmtree
    shutil.rmtree(dir, ignore_errors=ignore_errors, onerror=rmtree_errorhandler)
  File "shutil.py", line 747, in rmtree
  File "shutil.py", line 617, in _rmtree_unsafe
  File "shutil.py", line 615, in _rmtree_unsafe
PermissionError: [WinError 5] Access is denied: 'C:\\Windows\\Temp\\pip-uninstall-fi5xmcvd\\_brotli.cp310-win_amd64.pyd'

奇怪的是,在失败之后,我可以返回并手动删除文件夹,没有问题:

代码语言:javascript
复制
PS D:\Desktop> python.exe
Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import shutil
>>> shutil.rmtree('C:\\Windows\\Temp\\pip-uninstall-fi5xmcvd')

我在windows上使用python

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-25 03:49:55

问题在Pip代码中,这里1

代码语言:javascript
复制
from pip._vendor.requests.models import Request, Response

一旦该导入发生,brotli文件将由pip本身导入,因此在pip退出之前不能删除它。这是pip问题,而不是brotli或任何其他包的错误。

  1. https://github.com/pypa/pip/blob/b2b7aefe/src/pip/_internal/exceptions.py#L13
票数 2
EN

Stack Overflow用户

发布于 2022-06-20 03:18:14

如果有人想卸载brotli,您可以直接删除<YOUR PYTHON PATH>\lib\site-packages文件夹下的相关文件或文件夹。这在蟒蛇和正常的蟒蛇身上起了作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71606956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档