执行conda update conda后出现brotli模块AttributeError报错
解决conda执行报错
AttributeError: module 'brotli' has no attribute 'error'的方案 方案一:手动替换brotli模块(优先尝试)
由于所有conda命令无法执行,直接手动修复损坏的brotli模块:
- 先确认服务器上的Python版本和系统架构:
python --version uname -m - 获取对应版本的brotli wheel包:根据Python版本(如
cp39对应Python3.9)和系统架构(如linux_x86_64),下载匹配的.whl格式brotli包,可直接在服务器用wget获取对应文件。 - 解压wheel包:
unzip brotli-xxx-cpxx-cpxx-linux_x86_64.whl - 定位conda环境的site-packages目录:
通常路径为~/anaconda3/lib/pythonX.X/site-packages(X.X为你的Python版本),若此处无site-packages,检查~/anaconda3/envs/base/lib/pythonX.X/site-packages。 - 删除原有损坏的brotli相关文件:
rm -rf /path/to/anaconda/site-packages/brotli/ rm -rf /path/to/anaconda/site-packages/brotli-*.dist-info/ - 将解压得到的brotli文件夹和对应
.dist-info文件夹复制到site-packages目录,之后测试conda --version是否恢复正常。
方案二:覆盖重装conda(彻底解决)
若手动替换无效,直接覆盖现有conda安装,不会删除已有的环境和包:
- 下载对应Linux版本的Anaconda安装脚本,在服务器执行
wget获取脚本文件。 - 运行安装脚本并选择覆盖:
安装时保持原Anaconda路径不变,遇到覆盖提示选择bash Anaconda3-xxx-Linux-x86_64.shyes。 - 安装完成后重新加载shell配置:
之后测试source ~/.bashrc # 若用zsh则执行source ~/.zshrcconda --version验证修复效果。
方案三:临时修改conda源码应急
如果以上方法暂时无法实施,可临时修改conda源码跳过brotli错误:
- 查找调用
brotli.error的文件:find ~/anaconda3 -name "*.py" | xargs grep -l "brotli.error" - 打开找到的文件,将
brotli.error替换为通用的Exception,或注释掉相关异常捕获代码。 - 保存后尝试执行conda命令,若能正常运行,立即执行:
修复后建议恢复源码或重新安装conda以避免潜在问题。conda install --force-reinstall brotli
内容的提问来源于stack exchange,提问作者heyula
相关产品推荐
相关产品推荐

