执行conda update --all时遇OSError: [Errno 24] Too many open files错误
解决conda update --all触发的Errno 24: Too many open files错误
问题症状
执行conda update --all时触发OSError: [Errno 24] Too many open files错误:
Traceback (most recent call last): File "/home/jesus/anaconda3/lib/pypy3.9/site-packages/conda/exceptions.py", line 1132, in __call__ ... OSError: [Errno 24] Too many open files: b'/home/jesus/anaconda3/envs/jesus-ml-1/conda-meta'
特定环境中会立即报错,base或其他环境则在安装完成后触发相同错误,克隆环境后问题依然存在。
解决方案
1. 临时提升当前会话的文件描述符限制
在执行conda命令前,先运行:
ulimit -n 4096
该命令仅对当前终端会话有效,重启后失效。
2. 永久调整系统文件描述符限制
编辑/etc/security/limits.conf文件,添加以下内容:
* soft nofile 4096 * hard nofile 8192
保存后注销并重新登录,或重启系统使设置生效。
3. 切换到更高效的conda求解器
Libmamba求解器相比经典求解器更节省文件句柄资源,执行以下命令切换:
conda config --set solver libmamba
之后再尝试运行conda update --all。
4. 限制conda的线程数
减少conda使用的线程数量,降低同时打开的文件数:
conda config --set max_threads 1
5. 清理conda缓存与冗余包
清理无用的缓存和未使用的包,减少conda需要处理的文件数量:
conda clean --all
内容的提问来源于stack exchange,提问作者Alberto Zancanaro
相关产品推荐
相关产品推荐

