问题描述
我正在尝试在我的新 Macbook Air 上使用 M1 芯片 (Big Sur) 安装 pyaudio。起初我无法克服著名的 src/_portaudiomodule.c:29:10: Fatal error: 'portaudio.h' file not found
错误。我记得我在我的另一台笔记本电脑上也有这个问题,但后来一个简单的 brew install portaudio
修复了它。 好吧,这次不是。
在尝试了很多不同的东西之后,我终于找到了 this guide 并且在找到了我的 homebrew 目录后,我可以这样做:
export LIBRARY_PATH=/opt/homebrew/lib/:$LIBRARY_PATH
- 与 C_INCLUDE 相同
在我这样做之后,pyaudio 安装得很好!但是,现在当我尝试将 pyaudio 导入任何 python 程序并运行它时出现错误:
Traceback (most recent call last):
File "/Users/bende/GitHub/fretboard-learner/main.py",line 5,in <module>
import pyaudio
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pyaudio.py",line 116,in <module>
import _portaudio as pa
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_portaudio.cpython-39-darwin.so,2): Symbol not found: _PaMacCore_SetupChannelMap
Referenced from: /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_portaudio.cpython-39-darwin.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/_portaudio.cpython-39-darwin.so
我尝试使用谷歌搜索但无济于事,我真的不确定发生了什么。我能想到的就是它必须用 M1 芯片做一些事情,因为安装在非 M1 mac 上运行得很好。
有没有人知道是什么导致了这种情况?
解决方法
不知道您是否仍然需要该解决方案,但经过数小时的谷歌搜索后,这是我的(我也拥有一台 Mac m1):
一开始我无法安装PyAudio,即使成功安装了PyAudio也遇到了问题。我使用了与 brew 一起安装的 python 3.9。
- 卸载以前版本的 portaudio + PyAudio
- (可选)使用 Brew 主页上的命令安装 Mac m1 支持的最新 Brew
- (可选)安装wheel和setuptools:python3 -m pip install --upgrade pip setuptools wheel
- 安装最新版本的portaudio(我认为这是核心问题,稳定版19.6.0不起作用): brew install portaudio --HEAD
- 使用pip安装PyAudio:python3 -m pip install pyaudio --global-option="build_ext" --global-option="-I/opt/homebrew/include" --global-option="-L/opt /homebrew/lib"
如果事情进展不顺利,重启终端可能会有所帮助。