M1芯片Mac导入pyaudio报Symbol not found: _PaMacCore_SetupChannelMap错误求助
这个报错核心是M1芯片设备上portaudio的安装架构和你当前使用的Python3.9的架构不匹配,导致编译生成的pyaudio扩展模块无法正确关联portaudio的底层符号,按以下步骤操作可解决:
- 第一步先清理已安装的冲突版本
依次执行命令:pip3 uninstall pyaudio -y brew uninstall portaudio -y - 第二步确认Python架构,选择对应安装方式
执行命令file $(which python3)查看输出:- 如果输出包含
x86_64:右键点击终端->显示简介->勾选「使用Rosetta打开」,重启终端后执行brew install portaudio - 如果输出包含
arm64:直接在原生终端执行brew install portaudio
- 如果输出包含
- 第三步指定路径编译安装pyaudio
不要直接执行默认的pip安装命令,根据你的brew类型执行对应编译安装命令:- 原生arm brew(默认路径/opt/homebrew):
pip3 install --global-option='build_ext' --global-option='-I/opt/homebrew/include' --global-option='-L/opt/homebrew/lib' pyaudio - Rosetta x86 brew(默认路径/usr/local):
pip3 install --global-option='build_ext' --global-option='-I/usr/local/include' --global-option='-L/usr/local/lib' pyaudio
- 原生arm brew(默认路径/opt/homebrew):
如果以上操作后依然有问题,可以直接使用Anaconda环境安装,规避架构匹配问题:
新建Python3.9的conda环境后直接执行conda install pyaudio即可,conda会自动匹配对应架构的依赖包。
内容的提问来源于stack exchange,提问作者hson
相关产品推荐
相关产品推荐

