You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新Mac运行Python调用librosa报sndfile library not found错误求助

M1 Mac 运行librosa触发sndfile library not found报错解决

核心报错

OSError: sndfile library not found

已尝试操作

  • 通过pip install、conda install -c conda-forge librosa安装librosa与SoundFile库
  • 通过Homebrew安装libsndfile,不确定安装路径是否符合要求
  • 配置以下环境变量后问题仍未解决:
    export CPATH=/opt/homebrew/include
    export LIBRARY_PATH=/opt/homebrew/lib
    

环境信息

  • 设备:MacBook Pro M1 Max
  • 系统:MacOS Monterey
  • Python:3.9
  • librosa:0.9.1
  • SoundFile:0.10.3
  • IDE:最新版PyCharm社区版

根因定位

Python环境默认加载libsndfile动态库的路径为:
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_soundfile_data/libsndfile.dylib
Homebrew安装的libsndfile实际存放路径为:
/opt/homebrew/lib/libsndfile.dylib
路径不匹配,且配置的环境变量为编译阶段使用的路径变量,不是MacOS运行时加载动态库识别的变量,同时PyCharm不会自动继承shell中配置的环境变量,共同导致报错。

解决步骤

按顺序执行,执行到哪一步问题解决就可以停止:

  1. 优先使用conda-forge源强制重装适配arm64架构的全量依赖,自动处理路径映射,不需要手动改配置:
    conda install -c conda-forge libsndfile librosa soundfile --force-reinstall
    
  2. 如果使用系统Python+pip+Homebrew的安装组合,直接创建软链接把Homebrew安装的动态库映射到Python默认查找的路径:
    mkdir -p /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_soundfile_data/
    ln -sf /opt/homebrew/lib/libsndfile.dylib /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_soundfile_data/libsndfile.dylib
    
  3. 软链配置后如果PyCharm运行仍报错,手动在PyCharm运行配置中添加动态库加载路径:
    • 打开顶部菜单 Run > Edit Configurations
    • 选中当前运行的Python脚本配置,在Environment variables栏新增两个变量:
      • DYLD_LIBRARY_PATH = /opt/homebrew/lib
      • DYLD_FALLBACK_LIBRARY_PATH = /opt/homebrew/lib

    注意:MacOS系统运行时加载动态库仅识别DYLD_前缀的路径变量,之前配置的LIBRARY_PATH、CPATH仅在源码编译阶段生效,运行时不生效。

  4. 不需要手动拉取git源码编译libsndfile,Homebrew提供的预编译版本已经适配M1系列arm64架构,手动源码编译如果未指定架构参数,会生成x86_64版本的动态库,反而触发架构不兼容报错。

内容的提问来源于stack exchange,提问作者jonasblome

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:54:36