导入 PyAudio 无法在 M3 Pro Mac OS Sonoma 上运行(无法导入 PyAudio C 模块“pyaudio._portaudio”。)

问题描述 投票:0回答:1

所以我遇到了这个错误,许多其他人似乎在以前的 macbook(例如 M1)上遇到过这个错误...我已经尝试了他们建议的所有方法来修复它,即从

--HEAD
和到从源代码安装,但我似乎总是以某种方式遇到 C 库的问题。

我从

import pyaudio
得到的当前错误是这个:

Could not import the PyAudio C module 'pyaudio._portaudio'.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/salah/opt/anaconda3/envs/audio_env/lib/python3.10/site-packages/pyaudio/__init__.py", line 111, in <module>
    import pyaudio._portaudio as pa
ImportError: dlopen(/Users/salah/opt/anaconda3/envs/audio_env/lib/python3.10/site-packages/pyaudio/_portaudio.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_PaMacCore_SetupChannelMap'

关于如何解决这个问题有什么建议吗?由于某种原因,从源代码构建 portaudio 不起作用......

python pyaudio portaudio
1个回答
0
投票

我不知道这是否是“方法”,但如果我没记错的话,我在 Linux 上的做法是这样的。

  1. 我使用“python -m venv .venv”为我的项目创建了一个虚拟环境

  2. 我从pypi下载了pyaudio tar ball,放在我的项目文件夹中并解压。

  3. 我将 portaudio tar 包中的 portaudio.h 文件(您可以在此处下载)复制到 pyaudio 的 src/pyaudio 目录中。

  4. 我回到了pyaudio中setup.py文件所在的目录并执行了“pip install”。

  5. 成功安装 pip 后,我进入终端中的 python 控制台(同时使用“source .venv/bin.activate”激活我的虚拟环境)并添加站点包的本地环境路径(本地安装的路径) pyaudio 位于)到我的 sys.path 像 sys.path.append("~/Programming/python/Soundmaker/.venv/lib/python3.11/site-packages/")

    我不是 100% 确定这是否是我添加到 sys.path 的路径,但我认为它是......无论如何,你需要添加一些路径,以便 python 知道在哪里可以找到你从源代码构建的 pyaudio 模块。

此后,只要我的本地环境处于活动状态,我就可以导入 pyaudio。你可能不必使用虚拟环境,但我在一个虚拟环境中完成了所有这些工作,无论如何,Python 社区都强烈建议这样做。

© www.soinside.com 2019 - 2024. All rights reserved.