64

我正在运行 Ubuntu 11.04、Python 2.7.1 并想安装 Pyaudio。于是我跑了,

$ sudo easy_install pyaudio

在终端中,进程退出并显示以下错误消息,

搜索 pyaudio
阅读 http://pypi.python.org/simple/pyaudio/
阅读 http://people.csail.mit.edu/hubert/pyaudio/
最佳匹配:pyaudio 0.2.4
下载 http://people.csail.mit.edu/hubert/pyaudio/packages/pyaudio-0.2.4.tar.gz
处理pyaudio-0.2.4.tar.gz
运行 PyAudio-0.2.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-0Tetss/PyAudio-0.2.4/egg-dist-tmp-PYy9T8
在 /usr/include/python2.7/Python.h:8:0 包含的文件中,
                 来自 src/_portaudiomodule.c:30:
/usr/include/python2.7/pyconfig.h:1155:0:警告:“_POSIX_C_SOURCE”重新定义
/usr/include/features.h:214:0: 注意:这是前面定义的位置
src/_portaudiomodule.c:31:23:致命错误:portaudio.h:没有这样的文件或目录
编译终止。
错误:安装脚本退出并出现错误:命令“gcc”失败,退出状态为 1

我不确定是在 askubuntu.com 上还是在 stackoveflow 上发布此内容,但无论如何它都在 stackoverflow 中。我也google了一下这个问题,发现通过安装python-dev已经解决了一些问题。我已经安装了 python-dev。可能出了什么问题?

更新

以下是安装 libportaudio-dev 后出现的新错误,

搜索 pyaudio
阅读 http://pypi.python.org/simple/pyaudio/
阅读 http://people.csail.mit.edu/hubert/pyaudio/
最佳匹配:pyaudio 0.2.4
下载 http://people.csail.mit.edu/hubert/pyaudio/packages/pyaudio-0.2.4.tar.gz
处理pyaudio-0.2.4.tar.gz
运行 PyAudio-0.2.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-LMpsIy/PyAudio-0.2.4/egg-dist-tmp-AExlqd
在 /usr/include/python2.7/Python.h:8:0 包含的文件中,
                 来自 src/_portaudiomodule.c:30:
/usr/include/python2.7/pyconfig.h:1155:0:警告:“_POSIX_C_SOURCE”重新定义
/usr/include/features.h:214:0: 注意:这是前面定义的位置
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_hostApi”中:
src/_portaudiomodule.c:211:38:错误:“PaDeviceInfo”没有名为“hostApi”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultLowInputLatency”中:
src/_portaudiomodule.c:253:42:错误:“PaDeviceInfo”没有名为“defaultLowInputLatency”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultLowOutputLatency”中:
src/_portaudiomodule.c:267:42:错误:“PaDeviceInfo”没有名为“defaultLowOutputLatency”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultHighInputLatency”中:
src/_portaudiomodule.c:282:42:错误:“PaDeviceInfo”没有名为“defaultHighInputLatency”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultHighOutputLatency”中:
src/_portaudiomodule.c:296:42:错误:“PaDeviceInfo”没有名为“defaultHighOutputLatency”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultSampleRate”中:
src/_portaudiomodule.c:310:42:错误:“PaDeviceInfo”没有名为“defaultSampleRate”的成员
src/_portaudiomodule.c:在顶层:
src/_portaudiomodule.c:465:3:错误:“PaHostApiInfo”之前的预期说明符限定符列表
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_structVersion”中:
src/_portaudiomodule.c:475:13:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:481:29:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_type”中:
src/_portaudiomodule.c:489:13:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:495:36:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_name”中:
src/_portaudiomodule.c:503:13:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:503:32:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:509:34:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_deviceCount”中:
src/_portaudiomodule.c:517:13:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:523:29:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_defaultInputDevice”中:
src/_portaudiomodule.c:531:13:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:537:29:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_defaultOutputDevice”中:
src/_portaudiomodule.c:545:13:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:551:29:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_dealloc”中:
src/_portaudiomodule.c:569:7:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在顶层:
src/_portaudiomodule.c:910:3:错误:“PaStreamParameters”之前的预期说明符限定符列表
src/_portaudiomodule.c:在函数“_is_open”中:
src/_portaudiomodule.c:921:23:错误:“_pyAudio_Stream”没有名为“is_open”的成员
src/_portaudiomodule.c:在函数“_cleanup_Stream_object”中:
src/_portaudiomodule.c:932:19:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:933:17:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:935:19:错误:“_pyAudio_Stream”没有名为“inputParameters”的成员
src/_portaudiomodule.c:936:22:错误:“_pyAudio_Stream”没有名为“inputParameters”的成员
src/_portaudiomodule.c:937:17:错误:“_pyAudio_Stream”没有名为“inputParameters”的成员
src/_portaudiomodule.c:940:19:错误:“_pyAudio_Stream”没有名为“outputParameters”的成员
src/_portaudiomodule.c:941:22:错误:“_pyAudio_Stream”没有名为“outputParameters”的成员
src/_portaudiomodule.c:942:17:错误:“_pyAudio_Stream”没有名为“outputParameters”的成员
src/_portaudiomodule.c:946:15:错误:“_pyAudio_Stream”没有名为“is_open”的成员
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_structVersion”中:
src/_portaudiomodule.c:973:13:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:981:29:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_inputLatency”中:
src/_portaudiomodule.c:998:13:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:1006:33:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_outputLatency”中:
src/_portaudiomodule.c:1023:13:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:1031:33:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_sampleRate”中:
src/_portaudiomodule.c:1048:13:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:1056:33:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:在函数“pa_get_version”中:
src/_portaudiomodule.c:1168:3:警告:函数“Pa_GetVersion”的隐式声明
src/_portaudiomodule.c:在函数“pa_get_version_text”中:
src/_portaudiomodule.c:1177:3:警告:函数“Pa_GetVersionText”的隐式声明
src/_portaudiomodule.c:1177:3:警告:传递 'PyString_FromString' 的参数 1 使指针从整数而不进行强制转换
/usr/include/python2.7/stringobject.h:63:24:注意:预期为“const char *”,但参数的类型为“int”
src/_portaudiomodule.c:在函数“pa_get_host_api_count”中:
src/_portaudiomodule.c:1221:3: error: 'PaHostApiIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1221:3:注意:每个未声明的标识符对于它出现的每个函数只报告一次
src/_portaudiomodule.c:1221:18: 错误: 预期 ';' 在“计数”之前
src/_portaudiomodule.c:1226:3: error: 'count' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1226:3:警告:函数“Pa_GetHostApiCount”的隐式声明
src/_portaudiomodule.c:在函数“pa_get_default_host_api”中:
src/_portaudiomodule.c:1248:3: error: 'PaHostApiIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1248:18: 错误: 预期 ';' 在“索引”之前
src/_portaudiomodule.c:1253:3:警告:函数“Pa_GetDefaultHostApi”的隐式声明
src/_portaudiomodule.c:1253:3:错误:需要左值作为赋值的左操作数
src/_portaudiomodule.c:1265:7: 警告:传递 'Pa_GetErrorText' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/portaudio.h:93:13:注意:预期为“PaError”,但参数类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:1269:3: 警告:传递 'PyInt_FromLong' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/python2.7/intobject.h:38:24:注意:预期为“long int”,但参数的类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:在函数“pa_host_api_type_id_to_host_api_index”中:
src/_portaudiomodule.c:1275:3: error: 'PaHostApiTypeId' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1275:19: 错误: 预期 ';' 在'typeid'之前
src/_portaudiomodule.c:1276:3: error: 'PaHostApiIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1276:18: 错误: 预期 ';' 在“索引”之前
src/_portaudiomodule.c:1278:37: error: 'typeid' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1281:3:警告:函数“Pa_HostApiTypeIdToHostApiIndex”的隐式声明
src/_portaudiomodule.c:1293:7:警告:传递 'Pa_GetErrorText' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/portaudio.h:93:13:注意:预期为“PaError”,但参数类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:1297:3:警告:传递 'PyInt_FromLong' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/python2.7/intobject.h:38:24:注意:预期为“long int”,但参数的类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:在函数“pa_host_api_device_index_to_device_index”中:
src/_portaudiomodule.c:1303:3: error: 'PaHostApiIndex' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1303:18: 错误: 预期 ';' 在“apiIndex”之前
src/_portaudiomodule.c:1305:3: error: 'PaDeviceIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1305:17: 错误: 预期 ';' 在'devIndex'之前
src/_portaudiomodule.c:1308:38: error: 'apiIndex' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1311:3: error: 'devIndex' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1311:3:警告:函数“Pa_HostApiDeviceIndexToDeviceIndex”的隐式声明
src/_portaudiomodule.c:在函数“pa_get_host_api_info”中:
src/_portaudiomodule.c:1332:3: error: 'PaHostApiIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1332:18: 错误: 预期 ';' 在“索引”之前
src/_portaudiomodule.c:1333:3: error: 'PaHostApiInfo' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1333:18: error: '_info' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1339:27: 错误: ')' 标记之前的预期表达式
src/_portaudiomodule.c:1345:7: error: 'paInvalidHostApi' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1350:10:错误:“_pyAudio_paHostApiInfo”没有名为“apiInfo”的成员
src/_portaudiomodule.c:在函数“pa_get_device_count”中:
src/_portaudiomodule.c:1364:3: error: 'PaDeviceIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1364:17: 错误: 预期 ';' 在“计数”之前
src/_portaudiomodule.c:1369:3: error: 'count' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1369:3:警告:函数“Pa_GetDeviceCount”的隐式声明
src/_portaudiomodule.c:在函数“pa_get_default_input_device”中:
src/_portaudiomodule.c:1390:3: error: 'PaDeviceIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1390:17: 错误: 预期 ';' 在“索引”之前
src/_portaudiomodule.c:1395:3:警告:函数“Pa_GetDefaultInputDevice”的隐式声明
src/_portaudiomodule.c:1395:3:错误:需要左值作为赋值的左操作数
src/_portaudiomodule.c:1396:13:警告:指针和整数之间的比较
src/_portaudiomodule.c:1409:7:警告:传递 'Pa_GetErrorText' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/portaudio.h:93:13:注意:预期为“PaError”,但参数类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:1413:3: 警告:传递 'PyInt_FromLong' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/python2.7/intobject.h:38:24:注意:预期为“long int”,但参数的类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:在函数“pa_get_default_output_device”中:
src/_portaudiomodule.c:1419:3: error: 'PaDeviceIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1419:17: 错误: 预期 ';' 在“索引”之前
src/_portaudiomodule.c:1424:3:警告:函数“Pa_GetDefaultOutputDevice”的隐式声明
src/_portaudiomodule.c:1424:3:错误:需要左值作为赋值的左操作数
src/_portaudiomodule.c:1425:13:警告:指针和整数之间的比较
src/_portaudiomodule.c:1438:7:警告:传递 'Pa_GetErrorText' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/portaudio.h:93:13:注意:预期为“PaError”,但参数类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:1442:3: 警告:传递 'PyInt_FromLong' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/python2.7/intobject.h:38:24:注意:预期为“long int”,但参数的类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:在函数“pa_get_device_info”中:
src/_portaudiomodule.c:1448:3: error: 'PaDeviceIndex' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1448:17: 错误: 预期 ';' 在“索引”之前
src/_portaudiomodule.c:1455:3: 警告: 传递 'Pa_GetDeviceInfo' 的参数 1 从指针生成整数而不进行强制转换
/usr/include/portaudio.h:182:21:注意:预期为“PaDeviceID”,但参数的类型为“char * (*)(const char *, int)”
src/_portaudiomodule.c:1460:30: error: 'paInvalidDevice' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:在函数“pa_open”中:
src/_portaudiomodule.c:1601:3: error: 'PaStreamParameters' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1601:23: error: 'outputParameters' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1602:23: error: 'inputParameters' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1606:28: 错误: ')' 标记之前的预期表达式
src/_portaudiomodule.c:1622:9: error: 'paInvalidDevice' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1643:28: 错误: ')' 标记之前的预期表达式
src/_portaudiomodule.c:1679:3: error: 'PaStreamInfo' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1679:17: error: 'streamInfo' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1696:9:警告:传递 'Pa_OpenStream' 的参数 5 使指针从整数而不进行强制转换
/usr/include/portaudio.h:325:9:注意:预期为“void *”,但参数的类型为“int”
src/_portaudiomodule.c:1696:9: 警告:传递 'Pa_OpenStream' 的参数 7 从指针生成整数而不进行强制转换
/usr/include/portaudio.h:325:9:注意:预期为“int”,但参数的类型为“void *”
src/_portaudiomodule.c:1696:9: 警告:传递 'Pa_OpenStream' 的参数 8 从指针生成整数而不进行强制转换
/usr/include/portaudio.h:325:9:注意:预期为“PaSampleFormat”,但参数的类型为“void *”
src/_portaudiomodule.c:1696:9:错误:函数“Pa_OpenStream”的参数太少
/usr/include/portaudio.h:325:9:注意:在这里声明
src/_portaudiomodule.c:1712:31: 错误: ')' 标记之前的预期表达式
src/_portaudiomodule.c:1724:15:错误:“_pyAudio_Stream”没有名为“inputParameters”的成员
src/_portaudiomodule.c:1725:15:错误:“_pyAudio_Stream”没有名为“outputParameters”的成员
src/_portaudiomodule.c:1726:15:错误:“_pyAudio_Stream”没有名为“is_open”的成员
src/_portaudiomodule.c:1727:15:错误:“_pyAudio_Stream”没有名为“streamInfo”的成员
src/_portaudiomodule.c:在函数“pa_is_format_supported”中:
src/_portaudiomodule.c:1791:3: error: 'PaStreamParameters' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1791:22: 错误: 预期 ';' 在“输入参数”之前
src/_portaudiomodule.c:1792:22: 错误: 预期 ';' 在“输出参数”之前
src/_portaudiomodule.c:1812:5: error: 'inputParams' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:1820:5: error: 'outputParams' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:1827:3:警告:函数“Pa_IsFormatSupported”的隐式声明
src/_portaudiomodule.c:1831:16: error: 'paFormatIsSupported' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:在函数“pa_start_stream”中:
src/_portaudiomodule.c:1870:16: error: 'paStreamIsNotStopped' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:在函数“pa_stop_stream”中:
src/_portaudiomodule.c:1911:16: error: 'paStreamIsStopped' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:在函数“pa_abort_stream”中:
src/_portaudiomodule.c:1952:16: error: 'paStreamIsStopped' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:在函数“pa_is_stream_stopped”中:
src/_portaudiomodule.c:1994:3:警告:函数“Pa_IsStreamStopped”的隐式声明
src/_portaudiomodule.c:在函数“pa_is_stream_active”中:
src/_portaudiomodule.c:2039:3:警告:函数“Pa_IsStreamActive”的隐式声明
src/_portaudiomodule.c:在函数“pa_get_stream_time”中:
src/_portaudiomodule.c:2086:3:警告:函数“Pa_GetStreamTime”的隐式声明
src/_portaudiomodule.c:在函数“pa_get_stream_cpu_load”中:
src/_portaudiomodule.c:2118:3:警告:函数“Pa_GetStreamCpuLoad”的隐式声明
src/_portaudiomodule.c:在函数“pa_write_stream”中:
src/_portaudiomodule.c:2167:3:警告:函数“Pa_WriteStream”的隐式声明
src/_portaudiomodule.c:2171:16: error: 'paOutputUnderflowed' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:在函数“pa_read_stream”中:
src/_portaudiomodule.c:2233:3: error: 'PaStreamParameters' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2233:23: error: 'inputParameters' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2233:53:错误:“_pyAudio_Stream”没有名为“inputParameters”的成员
src/_portaudiomodule.c:2253:3:警告:函数“Pa_ReadStream”的隐式声明
src/_portaudiomodule.c:2259:15: error: 'paInputOverflowed' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2265:22: error: 'paOutputUnderflowed' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:在函数“pa_get_stream_write_available”中:
src/_portaudiomodule.c:2309:3:警告:函数“Pa_GetStreamWriteAvailable”的隐式声明
src/_portaudiomodule.c:在函数“pa_get_stream_read_available”中:
src/_portaudiomodule.c:2334:3:警告:函数“Pa_GetStreamReadAvailable”的隐式声明
src/_portaudiomodule.c:在函数“init_portaudio”中:
src/_portaudiomodule.c:2384:49: error: 'paInDevelopment' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2385:47: error: 'paDirectSound' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2386:39: error: 'paMME' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2387:40: error: 'paASIO' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2388:48: error: 'paSoundManager' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2389:45: error: 'paCoreAudio' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2390:39: error: 'paOSS' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2391:40: error: 'paALSA' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2392:38: error: 'paAL' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2393:40: error: 'paBeOS' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2394:41: error: 'paWDMKS' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2395:40: error: 'paJACK' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2396:42: error: 'paWASAPI' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2410:50: error: 'paNotInitialized' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2412:6: error: 'paUnanticipatedHostError' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2417:49: error: 'paInvalidDevice' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2433:6: error: 'paIncompatibleHostApiSpecificStreamInfo' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2434:51: error: 'paStreamIsStopped' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2435:54: error: 'paStreamIsNotStopped' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2436:51: error: 'paInputOverflowed' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2437:53: error: 'paOutputUnderflowed' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2438:51: error: 'paHostApiNotFound' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2439:50: error: 'paInvalidHostApi' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2441:6: error: 'paCanNotReadFromACallbackStream' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2443:6: error: 'paCanNotWriteToACallbackStream' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:2445:6: error: 'paCanNotReadFromAnOutputOnlyStream' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2447:6: error: 'paCanNotWriteToAnInputOnlyStream' undeclared (第一次在这个函数中使用)
src/_portaudiomodule.c:2449:6: error: 'paIncompatibleStreamHostApi' undeclared (首先在这个函数中使用)
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_defaultOutputDevice”中:
src/_portaudiomodule.c:552:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_defaultInputDevice”中:
src/_portaudiomodule.c:538:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_deviceCount”中:
src/_portaudiomodule.c:524:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_type”中:
src/_portaudiomodule.c:496:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_structVersion”中:
src/_portaudiomodule.c:482:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paHostApiInfo_get_name”中:
src/_portaudiomodule.c:510:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultSampleRate”中:
src/_portaudiomodule.c:311:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultHighOutputLatency”中:
src/_portaudiomodule.c:297:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultHighInputLatency”中:
src/_portaudiomodule.c:283:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultLowOutputLatency”中:
src/_portaudiomodule.c:268:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_defaultLowInputLatency”中:
src/_portaudiomodule.c:254:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_paDeviceInfo_get_hostApi”中:
src/_portaudiomodule.c:212:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_sampleRate”中:
src/_portaudiomodule.c:1057:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_is_open”中:
src/_portaudiomodule.c:922:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_outputLatency”中:
src/_portaudiomodule.c:1032:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_inputLatency”中:
src/_portaudiomodule.c:1007:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“_pyAudio_Stream_get_structVersion”中:
src/_portaudiomodule.c:982:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“pa_is_format_supported”中:
src/_portaudiomodule.c:1841:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“pa_get_device_count”中:
src/_portaudiomodule.c:1385:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“pa_host_api_device_index_to_device_index”中:
src/_portaudiomodule.c:1327:1:警告:控制到达非无效函数的结尾
src/_portaudiomodule.c:在函数“pa_get_host_api_count”中:
src/_portaudiomodule.c:1243:1:警告:控制到达非无效函数的结尾
错误:安装脚本退出并出现错误:命令“gcc”失败,退出状态为 1
4

10 回答 10

113

在https://groups.google.com/forum/#!msg/pyo-discuss/ptp_m39ACpI/XgKdK8YGNSoJ找到答案

sudo apt-get install portaudio19-dev
于 2014-01-09T08:04:51.613 回答
42

好吧,我通过使用包管理器解决了这个问题,

$ sudo apt-get 安装 python-pyaudio

虽然仍然不知道为什么 easy_install 会失败。

于 2011-05-07T15:37:22.483 回答
36

在 ubuntu 13.10 aka Saucy Salamander上,我通过安装libjack-jackd2-devportaudio19-dev解决了这个问题。

sudo apt-get install libjack-jackd2-dev portaudio19-dev

然后pip install pyaudio应该工作。

于 2014-02-15T18:15:40.940 回答
27

我安装在我的 virtualenv 中。pyaudio (0.2.11)

  1. pip install pyaudio-> 错误
  2. sudo apt-get install portaudio19-dev-> 成功
  3. pip install pyaudio-> 成功
于 2017-06-27T04:08:06.900 回答
5

这就是我让它工作的方式:

  1. brew update(如果您的 brew 是最新的,您可以忽略此步骤)
  2. 酿造安装portaudio
  3. 酿造链接--覆盖端口音频
  4. sudo python2.7 -m pip install --global-option='build_ext' --global-option='-I/usr/local/include' --global-option='-L/usr/local/lib' pyaudio
于 2017-01-18T11:13:11.880 回答
3

在 Fedora 27 上,为了从默认的 python3 安装中获取 pyaudio,我执行了以下操作

sudo dnf install python3-devel
sudo dnf install portaudio-devel
sudo pip3 install pyaudio
于 2018-03-01T01:52:47.577 回答
2

使用以下命令安装pyaudio

sudo apt-get install python-pyaudio
于 2018-12-10T06:44:11.070 回答
1

在 OpenSuse (13.2) 上遇到类似错误后,我发现了这个问题。所以我想我也会发布我的解决方案,以防其他人通过谷歌找到这个。

虽然 libportaudio2 是包含库的软件包,但您还需要 portaudio-devel 才能使安装工作。

于 2016-03-09T20:31:10.490 回答
1

也有同样的问题。我正在研究 MAC 并通过运行这些代码行解决了这个问题。

brew install portaudio

pip install pyaudio

于 2020-10-21T01:30:24.423 回答
0

此方法适用于 M1 Mac

在 M1 Mac 上安装 PyAudio

这种方法成功地为我工作。

于 2021-07-08T05:43:27.720 回答