![](/img/trans.png)
[英]Building PortAudio and PyAudio on Mac running Snow Leopard (arch issues)
[英]Pyaudio, portaudio and mac 10.7.5
我在正確安裝pyaudio時遇到問題。 我為該項目設置了virtualenv。 我首先嘗試安裝portaudio:
sudo port install portaudio
返回:
---> Cleaning portaudio
---> Scanning binaries for linking errors: 100.0%
---> No broken files found.
我認為這意味着它運行良好。 然后我嘗試了:
pip install pyaudio
哪個回報:
Downloading/unpacking pyaudio
Running setup.py egg_info for package pyaudio
warning: no files found matching '*.c' under directory 'test'
Installing collected packages: pyaudio
Running setup.py install for pyaudio
building '_portaudio' extension
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DMACOSX=1 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/_portaudiomodule.c -o build/temp.macosx-10.6-intel-2.7/src/_portaudiomodule.o -fno-strict-aliasing
src/_portaudiomodule.c:29:23: error: portaudio.h: No such file or directory
src/_portaudiomodule.c:33:25: error: pa_mac_core.h: No such file or directory
...
這是第一個警告問題嗎? 我有點驚訝它說沒有portaudio.h的文件或目錄。 我是否必須做一些特殊的事情來啟用我的端口音頻macport安裝?
感謝任何幫助!
$ brew install portaudio
$ pip install pyaudio
一些丟失的庫和portaudio提供的。 適用於Python 2.7(不確定其他版本)
以下內容如何:
$ sudo port install py27-pyaudio
Warning: port definitions are more than two weeks old, consider using selfupdate
---> Computing dependencies for py27-pyaudio
---> Fetching archive for py27-pyaudio
---> Attempting to fetch py27-pyaudio-0.2.7_0.darwin_12.x86_64.tbz2 from http://lil.fr.packages.macports.org/py27-pyaudio
---> Attempting to fetch py27-pyaudio-0.2.7_0.darwin_12.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/py27-pyaudio
---> Installing py27-pyaudio @0.2.7_0
---> Activating py27-pyaudio @0.2.7_0
---> Cleaning py27-pyaudio
---> Updating database of binaries: 100.0%
---> Scanning binaries for linking errors: 100.0%
---> No broken files found.
$ python -c "import pyaudio"
$
這至少對我有用。
根據我上面的評論,這與此答案類似,但由於OP不清楚,我將再試一次。 (這基本上只是我在做這個時給自己做的一些筆記的剪切和粘貼。)
source bin/activate
您可以使用$ sudo port install portaudio安裝portaudio
你可以從http://people.csail.mit.edu/hubert/pyaudio/用mac安裝程序安裝pyaduio
這將安裝pyaudio所需的portaudio:
sudo port install portaudio
接下來,為你的python版本尋找合適的pyaudio macport
port search pyaudio
假設您正在使用python27,請安裝pyaudio:
sudo port install py27-pyaudio
參考文獻:
創建虛擬環境,激活它:
virtualenv env
env/bin/activate
下載PyAudio(當時最新):
wget -c http://people.csail.mit.edu/hubert/pyaudio/packages/pyaudio-0.2.8.tar.gz
tar zxf pyaudio-0.2.8.tar.gz
cd PyAudio-0.2.8/
在PyAudio文件夾中解壓縮portaudio,將其重命名為portaudio-v19並構建它:
wget -c http://www.portaudio.com/archives/pa_stable_v19_20140130.tgz
tar zxf pa_stable_v19_20140130.tgz
mv portaudio portaudio-v19
cd portaudio-v19
./configure
make
cd ../
回到PyAudio目錄:
export CFLAGS="-I `pwd`/portaudio-v19/include/ -L `pwd`/portaudio-v19/lib/.libs/"
python setup.py build --static-link
python setup.py install
就這樣!
關鍵是這個命令:
export CFLAGS="-I `pwd`/portaudio-v19/include/ -L `pwd`/portaudio-v19/lib/.libs/"
這避免了這樣的文件錯誤。
這解決了我的問題,非常感謝@tuxdna。
問題是pyaudio
設置腳本( setup.py
)假定所有必需的頭都在/usr/include
。 這就是為什么它適用於HomeBrew,而不是MacPorts,它通常(並且干凈地)將所有內容放在/opt/local
。
PyAudio維護者依賴於HomeBrew,現在沒有選項組合允許拼寫出查找標題的位置。 在撰寫本文時, setup.py
源代碼僅支持Mac OS X的默認值。
要使用MacPorts,它很麻煩,但足以創建兩個鏈接進行編譯:
port install portaudio
sudo ln -s /opt/local/include/portaudio.h /usr/include
sudo ln -s /opt/local/include/pa_mac_core.h /usr/include
pip install --user pyaudio # Should now compile fine.
安裝結束后,可能應刪除鏈接。
在Mac OS X 10.10上測試,Python 2.7安裝了MacPorts。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.