簡體   English   中英

Pyaudio,portaudio和mac 10.7.5

[英]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不清楚,我將再試一次。 (這基本上只是我在做這個時給自己做的一些筆記的剪切和粘貼。)

  1. 這是32位的構建。
  2. 下載pyaudio和portaudio(我使用的是0.2.4,v19)。
  3. cd portaudio
  4. 干凈
  5. CC =“gcc -arch i386”./ configure -enable-static
  6. 使
  7. sudo make install(如果你靜態鏈接它可能不需要)。
  8. 將portaudio移動到PyAudio目錄中,即:
    1. cd ..(在portaudio之外)
    2. mv portaudio PyAudio / portaudio-v19(請注意這里需要v19)
  9. cd進入PyAudio並運行:
    1. 確保你在虛擬環境中,即source bin/activate
    2. python setup.py build -static-link
    3. python setup.py安裝

您可以使用$ 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

參考文獻:

如何在Mac OS X 10.7上的virtualenv中安裝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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM