python-3.x 无法导入PyAudio C模块“_portaudio”,(Mac M1),关于找不到符号:_PaMacCore_设置通道Map

sg2wtvxw  于 2023-02-17  发布在  Python
关注(0)|答案(2)|浏览(394)

我试图在我的MacBook上导入Pyaudio与M1芯片。我有Python版本3.9.6和Python(Python 3.8),现在使用的终端版本是3.9.6。
在我得到这个错误之前,我修复了'brew安装portaudio'和'pip安装pyaudio'的问题。Portaudio和Pyaudio安装得很好!但是当我试图导入pyaudio时,

Could not import the PyAudio C module '_portaudio'.
Traceback (most recent call last):
  File "/Users/hson/Desktop/k.A.I_speaker/test.py", line 2, in <module>
    import make_pyaudio
  File "/Users/hson/Desktop/k.A.I_speaker/make_pyaudio.py", line 1, 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

我试着卸载Portaudio&PyAudio并重新安装很多次,但仍然无法修复这个问题。
有没有人谁得到这个问题,并解决它?

z3yyvxxp

z3yyvxxp1#

根据您需要使用的体系结构,有两种解决方案。对于这两种解决方案,/portaudio/之后的版本号可能不同,请根据您的版本号进行调整。

对于基于Intel的自制程序安装

对于那些必须使用python软件包的人来说,我们必须恢复使用基于intel的python软件包,这不是小事,花了我几乎一天的时间,所以我向有需要的人描述一下。
以下是您需要做的事情:
1.在Rosetta下运行终端|在Rosetta下运行
1.将自制程序安装为基于英特尔的版本
在(1)中创建的终端中,运行:

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

1.为基于英特尔的自制程序创建别名
在. bash_profile中,插入:

alias ibrew="arch -x86_64 /usr/local/bin/brew"

1.安装boost和boost_python库:
使用步骤(3)中的酿造液,运行:

ibrew install --build-from-source -vd boost
ibrew install --build-from-source -vd boost-python3

1.安装端口收音机
使用步骤(3)中的酿造液,运行:

ibrew install portaudio
ibrew link portaudio

关键:这会将portaudio安装到/usr/local/Cellar/portaudio/19.7.0,并且必须在pyaudio安装中引用!!!
1.安装Pyaudio
我们现在可以安装pyaudio和我们安装的基于intel的自制程序的portaudio版本。/portaudio/后面的版本号可能会不同,请调整到您的版本号。

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

对于基于ARM的自制程序安装

1.使用正常酿造
运行:

brew install boost 
brew install boost-python
brew install portaudio
brew link portaudio

1.安装PyAudio
运行:

python -m pip install --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
elcex8rz

elcex8rz2#

“康达安装portaudio pyaudio”工作在我的m1 mac

相关问题