macOS 10.15下执行任意conda命令均报KeyError('pkgs_dirs')求助
解决macOS 10.15下conda命令KeyError('pkgs_dirs')及libffi依赖问题
问题根源
更新conda和Python后,系统依赖库libffi.6.dylib缺失或版本不匹配,导致_ctypes模块加载失败,进而触发conda配置读取异常(KeyError('pkgs_dirs')),同时Anaconda Navigator因依赖问题闪退。
解决方案步骤
1. 临时修复libffi依赖,恢复conda基础功能
如果已安装Homebrew,执行以下命令:
# 安装最新版libffi brew install libffi # 创建兼容版本的软链接(解决找不到libffi.6.dylib的问题) ln -s /usr/local/opt/libffi/lib/libffi.7.dylib /usr/local/opt/libffi/lib/libffi.6.dylib # 临时注入依赖库路径 export DYLD_LIBRARY_PATH=/usr/local/opt/libffi/lib:$DYLD_LIBRARY_PATH
执行完后尝试运行conda --version,如果能正常输出版本号,说明临时修复成功,可继续下一步;如果仍报错,直接跳至手动卸载步骤。
2. 彻底卸载Anaconda(两种方式)
方式一:用anaconda-clean(临时修复成功后使用)
# 安装清理工具 conda install anaconda-clean -y # 执行清理,删除所有配置和缓存 anaconda-clean --yes # 删除Anaconda安装目录 rm -rf /opt/anaconda3 # 删除用户目录下残留的conda配置文件 rm -rf ~/.conda ~/.condarc ~/.anaconda # 移除shell中的conda环境变量配置(以bash为例,zsh用户替换为~/.zshrc) sed -i '' '/\/opt\/anaconda3/d' ~/.bash_profile source ~/.bash_profile
方式二:手动强制卸载(临时修复失败时使用)
# 终止所有Anaconda相关进程 pkill -9 anaconda # 删除主安装目录 rm -rf /opt/anaconda3 # 删除用户配置文件 rm -rf ~/.conda ~/.condarc ~/.anaconda # 移除shell配置中的conda路径(bash用户) sed -i '' '/\/opt\/anaconda3/d' ~/.bash_profile source ~/.bash_profile # zsh用户执行以下两行 # sed -i '' '/\/opt\/anaconda3/d' ~/.zshrc # source ~/.zshrc
3. 重装适配macOS 10.15的Anaconda版本
macOS 10.15(Catalina)不支持最新版Anaconda,需下载适配的旧版本,推荐Anaconda3-2020.07-MacOSX-x86_64.sh(内置Python 3.8,完美兼容Catalina)。
下载后执行安装:
bash Anaconda3-2020.07-MacOSX-x86_64.sh
安装过程中按提示完成,注意不要勾选"自动初始化shell"(避免覆盖现有配置),安装完成后手动添加环境变量:
# bash用户 echo 'export PATH="/opt/anaconda3/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile # zsh用户 echo 'export PATH="/opt/anaconda3/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
4. 后续规避问题的建议
- 不要在同一个conda环境中混合Python 2.7和3.x,使用独立环境管理:
conda create -n py27 python=2.7 -y conda create -n py38 python=3.8 -y - 升级conda时指定兼容Catalina的版本,避免自动升级到不兼容版本:
conda install conda=4.8.3 -y
内容的提问来源于stack exchange,提问作者Eagex
相关产品推荐
相关产品推荐

