Linux环境更新Anaconda时触发TypeError等报错,寻求可行的更新解决方案
Linux环境更新Anaconda时触发TypeError等报错,寻求可行的更新解决方案
遇到这种Anaconda更新时的多进程池崩溃报错,大概率是多进程解压兼容性问题、缓存损坏或者系统资源不足导致的,试试下面这几个实操性强的解决方法:
1. 强制单进程运行更新脚本
报错核心是concurrent.futures.process.BrokenProcessPool,说明多进程处理时出了问题,直接禁用多进程就能绕过这个坑。运行以下命令:
sh Anaconda3-2023.09-0-Linux-x86_64.sh -u --no-progress --single-process
--single-process:强制脚本用单进程处理解压和安装,避免多进程池的异常--no-progress:关闭进度条输出,减少不必要的IO干扰,有时候进度条的动态输出也会触发奇怪的进程问题
2. 清理Anaconda缓存后再更新
缓存的损坏包可能导致解压时抛出异常,先彻底清理缓存再尝试更新:
# 清理所有Anaconda缓存(包括下载的包、临时文件等) conda clean -a # 然后用conda自带的更新命令试试(比安装脚本更稳定) conda update --all
如果还是想用安装脚本更新,清理完缓存后再重新运行原更新命令即可。
3. 检查系统资源是否充足
解压Anaconda包需要足够的内存和磁盘空间,资源不足会导致进程被系统强制终止:
- 检查内存:
free -h,确保可用内存至少有2G以上,内存不够的话可以临时添加swap分区 - 检查磁盘空间:
df -h /home/user/anaconda3,确保目标目录所在磁盘有至少10G的空闲空间
如果资源不足,先释放部分空间或者扩展内存后再尝试更新。
4. 修复安装目录权限
你用root用户运行脚本,但安装目录属于user用户,权限冲突可能导致进程异常:
# 先修改安装目录的所有者为user用户 sudo chown -R user:user /home/user/anaconda3 # 切换到user用户后再运行更新脚本 su - user sh /home/user/Downloads/Anaconda3-2023.09-0-Linux-x86_64.sh -u
尽量用目标目录的所有者用户来执行更新,避免跨用户权限的问题。
额外排查:校验安装包完整性
如果以上方法都无效,可能是下载的安装包损坏了,用哈希值校验一下:
# 计算安装包的sha256哈希 sha256sum Anaconda3-2023.09-0-Linux-x86_64.sh
把计算结果和Anaconda官网对应版本的哈希值对比,如果不一致,重新下载安装包再尝试更新。
备注:内容来源于stack exchange,提问作者questionto42
相关产品推荐
相关产品推荐

