一、前情提要
在cmd里面更新spyder(有conda),其中一个环境(transflow)下更新很顺利,但更新另一个环境base(root)中间就开始卡和报错。我等运行结束后就发现transflow环境下的spyder更新到最新版本但控制台无法显示(说内核有问题),base下的spyder打不开,anaconda也打不开。后来在cmd运行任何conda的程序都提示一样的报错:
AttributeError: module 'brotlicffi' has no attribute 'error'
C:\Users\Lenovo>conda remove spyder
Traceback (most recent call last):
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\exception_handler.py", line 17, in __call__
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\cli\main.py", line 68, in main_subshell
parser = generate_parser(add_help=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\cli\conda_argparse.py", line 114, in generate_parser
configure_parser_create(sub_parsers)
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\cli\conda_argparse.py", line 772, in configure_parser_create
add_parser_solver(solver_mode_options)
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\cli\conda_argparse.py", line 1968, in add_parser_solver
choices=context.plugin_manager.get_solvers(),
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\base\context.py", line 492, in plugin_manager
from ..plugins.manager import get_plugin_manager
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\plugins\__init__.py", line 28, in <module>
from .hookspec import hookimpl # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\plugins\hookspec.py", line 16, in <module>
from .types import (
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\plugins\types.py", line 15, in <module>
from requests.auth import AuthBase
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\requests\__init__.py", line 43, in <module>
import urllib3
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\__init__.py", line 13, in <module>
from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 40, in <module>
from .response import HTTPResponse
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\response.py", line 163, in <module>
class HTTPResponse(io.IOBase):
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\response.py", line 396, in HTTPResponse
DECODER_ERROR_CLASSES += (brotli.error,)
^^^^^^^^^^^^
AttributeError: module 'brotlicffi' has no attribute 'error'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Lenovo\anaconda3\Scripts\conda-script.py", line 12, in <module>
sys.exit(main())
^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\cli\main.py", line 123, in main
return conda_exception_handler(main, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\exception_handler.py", line 388, in conda_exception_handler
return_value = exception_handler(func, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\exception_handler.py", line 20, in __call__
return self.handle_exception(exc_val, exc_tb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\exception_handler.py", line 51, in handle_exception
from .exceptions import (
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\conda\exceptions.py", line 15, in <module>
import requests
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\requests\__init__.py", line 43, in <module>
import urllib3
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\__init__.py", line 13, in <module>
from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 40, in <module>
from .response import HTTPResponse
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\response.py", line 163, in <module>
class HTTPResponse(io.IOBase):
File "C:\Users\Lenovo\anaconda3\Lib\site-packages\urllib3\response.py", line 396, in HTTPResponse
DECODER_ERROR_CLASSES += (brotli.error,)
^^^^^^^^^^^^
AttributeError: module 'brotlicffi' has no attribute 'error'
二、解决办法
问了kimi,然后cmd在base环境下运行了下面的程序:
#方法 1:强制重装 brotlicffi(快速修复)
#用 pip 强制重装(绕过 conda 的依赖检查):
python -m pip install --force-reinstall brotlicffi
#测试 conda 是否恢复正常:
conda --version
pip完成就能正常运行conda了!好神奇!虽然不懂是因为什么出现了报错和问题,但起码解决了哈哈哈。


被折叠的 条评论
为什么被折叠?



