首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >进口音频不起作用-符号找不到:_PaMacCore_SetupChannelMap on mac (Big M1 Apple )

进口音频不起作用-符号找不到:_PaMacCore_SetupChannelMap on mac (Big M1 Apple )
EN

Stack Overflow用户
提问于 2021-01-13 20:21:10
回答 4查看 3K关注 0票数 2

我正在尝试用M1芯片(Big )在我的新Macbook Air上安装py音频。起初,我无法通过著名的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一样。

完成此操作后,安装得很好!,但是,当我尝试将py音频导入到任何python程序并运行它时,都会出现一个错误:

代码语言:javascript
运行
复制
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芯片做些什么,因为安装在非m1mac上运行得很好。

有人知道是什么导致了这一切吗?

EN

回答 4

Stack Overflow用户

发布于 2021-02-13 14:46:45

不知道你是否还需要这个解决方案,但在谷歌搜索了几个小时后(我还拥有一个Mac m1),这里是我的解决方案:

一开始我无法安装PyAudio,即使在成功安装PyAudio之后也会遇到问题。我在这个过程中使用了python3.9和brew一起安装。

  1. 卸载以前版本的port音频+ PyAudio
  2. (可选)使用Brew主页上的命令安装最新的Mac m1支持的啤酒
  3. (可选)安装车轮和setuptools: python3 -m pip安装-升级pip setuptools轮
  4. 安装最新版本的端口音频(我相信这是核心问题,稳定版本19.6.0没有工作):brew安装port音频-HEAD
  5. 用pip安装PyAudio : python3 -m pip安装py音频--python3--m=“build_ext”--全局-选项=“-i/opt/homebrew/include”--全局-选项=“-L/opt/-m/lib”

如果事情不顺利,重启终端可能会有所帮助。

票数 9
EN

Stack Overflow用户

发布于 2022-01-16 16:04:26

用于基于Intel的自制设备安装

对于那些必须使用还不能用于arm体系结构的python包的人,我们必须恢复到基于英特尔的Python包。这不是小事一桩,几乎花了我一天的时间,所以我把它描述给需要帮助的人。

下面是你需要做的事情:

  1. 运行罗塞塔下的航站楼
  2. 将自制软件安装为基于英特尔的版本

在(1)中创建的终端中,运行:

代码语言:javascript
运行
复制
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  1. 为基于英特尔的自制产品创建别名

在.bash_profile中插入:

代码语言:javascript
运行
复制
alias ibrew="arch -x86_64 /usr/local/bin/brew"
  1. 安装boost和boost_python库:

使用brew从步骤(3),运行:

代码语言:javascript
运行
复制
ibrew install --build-from-source -vd boost
ibrew install --build-from-source -vd boost-python3
  1. 安装端口音频

使用brew从步骤(3),运行:

代码语言:javascript
运行
复制
ibrew install portaudio
ibrew link portaudio

键:这会安装到/usr/local/c业力/port音频/19.7.0中,并且必须为py音频的安装提供参考!

  1. 安装吡喹酮

我们现在可以用基于英特尔的自制软件安装我们安装的port音频版本。/port音频/后面的版本号可能不同,请根据您的版本进行调整。

代码语言:javascript
运行
复制
python -m pip install --global-option='build_ext' --global-option='-I/usr/local/Cellar/portaudio/19.7.0/include' --global-option='-L/usr/local/Cellar/portaudio/19.7.0/lib' --force pyaudio
票数 1
EN

Stack Overflow用户

发布于 2021-09-12 07:25:11

在对相同的问题进行故障排除时(包括按照momoclouq对这个问题的回答的步骤),我也遇到了这个错误。我的最后解决办法是:

我的自制软件只安装在/usr/local中,这是用于rosetta模拟(Intel)代码的。请参阅堆栈溢出问题/答案中的更多信息。

一旦在ARM64下正确安装了/opt/homebrew,我就删除了以前的port音频安装,并执行了以下操作:

  • $arch -arm64 /opt/homebrew/bin/brew install portaudio
  • $pip3 install --no-cache-dir --global-option='build_ext' --global-option='-I/opt/homebrew/Cellar/portaudio/19.7.0/include' --global-option='-L/opt/homebrew/Cellar/portaudio/19.7.0/lib' pyaudio确保此路径与您的arch arm64端口音频安装一致。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65709212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档