python - 导入 pyaudio 不起作用 - 找不到符号:mac 上的 _PaMacCore_SetupChannelMap(Big Sur M1 Apple Silicon)
问题描述
我正在尝试使用 M1 芯片(Big Sur)在我的新 Macbook Air 上安装 pyaudio。起初我无法克服这个著名的src/_portaudiomodule.c:29:10: fatal error: 'portaudio.h' file not found
错误。我记得我在另一台笔记本电脑上也遇到了这个问题,但后来简单地brew install portaudio
解决了这个问题。好吧,这次不是。
在尝试了很多不同的事情之后,最后我找到了这个指南,在找到我的自制目录之后,我可以这样做:
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/库"
如果事情不顺利,重新启动终端可能会有所帮助。
推荐阅读
- python - TypeError:convertDocument() 接受 1 个位置参数,但给出了 2 个
- c - 如何使用 GDAL 对带有 C/C++ 的 shapefile 进行光栅化?
- regex - 在熊猫系列上循环正则表达式
- jenkins - SVN:在 unix 服务器上签出时出现问题
- linux - 无法在 Ubuntu 19.04 中安装 php7.1-soap
- mysql - 从mysql到mongo db的数据调度问题
- javascript - 如何在javascript中从sql中使用power函数?
- java-8 - Anypoint Studio 启动/部署问题
- selenium - 我们在哪里可以找到我们在 Selenium 的 Chrome 功能中使用的首选项名称(键)?
- android - 全屏TextInputEditText不显示计数器