4

我在 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
  2. 下载稳定的 portaudio-v19 http://www.portaudio.com/download.html
  3. 从手册中删除了“-mno-cygwin”选项并编译了 portaudio(gcc 版本 4.5.3)
  4. 编辑 C:\Python27\Lib\distutils\cygwinccompiler.py 并从文件中删除“-mno-cygwin”标志。
  5. 我运行了建议的 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 文件。你能说出出了什么问题吗?

4

2 回答 2

1

但不幸的是,来自http://www.lfd.uci.edu/~gohlke/pythonlibs/的文件不支持 ASIO。要获得 ASIO 支持,您还需要获得 ASIO SDK。我设法让它用 Visual Studio 2010 x64 编译,但仍在试图弄清楚如何让它在实践中使用 ASIO(当我的卡应该有 4-8 个时,输出仍然只有 2 个通道

于 2013-07-18T21:44:43.450 回答
-1

这是因为该文件在windows上编译后实际上称为libportaudio.dll.a,但即使重命名它也不会解决问题。从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载和安装二进制文件要容易得多

安装 pyaudio 以使用 cygwin 的 python 是另一回事,这就是我遇到的问题。

于 2013-06-11T17:06:35.080 回答