我在win32上运行Python 2.7.3 [MSC v.1500 32位(英特尔)]。
我需要构建支持ASIO的portaudio,并将其绑定到pyaudio,以便在Windows 7下使用它。基本上,我想从python访问ASIO驱动程序,我发现这是一种方法。我正在遵循pyaudio网页http://people.csail.mit.edu/hubert/pyaudio/的手册。该手册相当过时,gcc不再支持-mno-cygwin标志。我所做的:
1.从他们的网页下载PyAudio-0.2.7
1.下载稳定的portaudio-v19 http://www.portaudio.com/download.html
1.删除了手册中的“-mno-cygwin”选项,并编译了portaudio(gcc版本4.5.3)
1.编辑了C:\Python27\Lib\distutils\cygwinccompiler.py并从文件中删除了“-mno-cygwin”标志。
1.我运行了建议的pyaudio编译,但出现gcc错误
$ ../Python27/python.exe setup.py build --static-link -cmingw32
running build
running build_py
creating build
creating build\lib.win32-2.7
copying src\pyaudio.py -> build\lib.win32-2.7
running build_ext
building '_portaudio' extension
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
creating build\temp.win32-2.7\Release\src
C:\MinGW\bin\gcc.exe -mdll -O -Wall -I./portaudio-v19\include/ -Ic:\Python27\inc
lude -Ic:\Python27\PC -c src/_portaudiomodule.c -o build\temp.win32-2.7\Release\
src\_portaudiomodule.o -fno-strict-aliasing
writing build\temp.win32-2.7\Release\src\_portaudio.def
C:\MinGW\bin\gcc.exe -shared -s build\temp.win32-2.7\Release\src\_portaudiomodul
e.o build\temp.win32-2.7\Release\src\_portaudio.def -Lc:\Python27\libs -Lc:\Pyth
on27\PCbuild -lwinmm -lpython27 -lmsvcr90 -o build\lib.win32-2.7\_portaudio.pyd
./portaudio-v19\lib/.libs/libportaudio.a -lwinmm
gcc: error: ./portaudio-v19\lib/.libs/libportaudio.a: No such file or directory
error: command 'gcc' failed with exit status 1
我假设portaudio编译失败了。我认为提到的libportaudio. a是一个linux文件。你能告诉我哪里出了问题吗?
3条答案
按热度按时间x6492ojm1#
但是http://www.lfd.uci.edu/~gohlke/pythonlibs/中的文件不支持ASIO,要获得ASIO支持,还需要获得ASIO SDK。我设法让它用visual studio 2010 x64编译,但仍试图弄清楚如何使它在实践中使用ASIO(输出仍然只有2个通道,而应该有4-8个我的卡
46scxncf2#
不幸的是,我也不能记录两个以上的轨道与PyAudio的建设从http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio。
所以我用Microsoft Visual Studio(免费版)编译了portaudio,根据
http://portaudio.com/docs/v19-doxydocs/compile_windows_asio_msvc.htmlhttp://portaudio.com/docs/v19-doxydocs/compile_windows.html显示器
请注意,我们必须从https://www.steinberg.net/developers下载ASIO SDK库以获得ASIO支持。
然后,我还使用portaudio_x64.dll(用MSVC编译)构建了pyaudio,如下所示:
这时我遇到了一条错误信息:
我通过将portaudio DLL直接复制到pyaudio库的目录中来解决这个问题:
我成功地用pyaudio录制了两个以上的频道,更多的帮助将从https://stackoverflow.com/posts/74188301获得。
wlzqhblo3#
这是因为在Windows上编译后,该文件实际上被称为libportaudio.dll.a,但即使重命名也不能解决问题。
安装pyaudio来与cygwin的python一起工作是另一回事,这就是我遇到的问题。