src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录

2024-09-08 06:52

本文主要是介绍src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(venv) shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddevice
Collecting pyaudioDownloading PyAudio-0.2.14.tar.gz (47 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.1/47.1 kB 644.0 kB/s eta 0:00:00Installing build dependencies ... doneGetting requirements to build wheel ... donePreparing metadata (pyproject.toml) ... done
Collecting sounddeviceDownloading sounddevice-0.5.0-py3-none-any.whl.metadata (1.4 kB)
Collecting CFFI>=1.0 (from sounddevice)Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting pycparser (from CFFI>=1.0->sounddevice)Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Downloading sounddevice-0.5.0-py3-none-any.whl (32 kB)
Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 479.4/479.4 kB 3.5 MB/s eta 0:00:00
Downloading pycparser-2.22-py3-none-any.whl (117 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 13.5 MB/s eta 0:00:00
Building wheels for collected packages: pyaudioBuilding wheel for pyaudio (pyproject.toml) ... errorerror: subprocess-exited-with-error× Building wheel for pyaudio (pyproject.toml) did not run successfully.│ exit code: 1╰─> [18 lines of output]running bdist_wheelrunning buildrunning build_pycreating buildcreating build/lib.linux-x86_64-cpython-312creating build/lib.linux-x86_64-cpython-312/pyaudiocopying src/pyaudio/__init__.py -> build/lib.linux-x86_64-cpython-312/pyaudiorunning build_extbuilding 'pyaudio._portaudio' extensioncreating build/temp.linux-x86_64-cpython-312creating build/temp.linux-x86_64-cpython-312/srccreating build/temp.linux-x86_64-cpython-312/src/pyaudiox86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -I/usr/local/include -I/usr/include -I/home/shgbitai/pythonworkspace/ai-accompany/venv/include -I/usr/include/python3.12 -c src/pyaudio/device_api.c -o build/temp.linux-x86_64-cpython-312/src/pyaudio/device_api.osrc/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录9 | #include "portaudio.h"|          ^~~~~~~~~~~~~compilation terminated.error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for pyaudio
Failed to build pyaudio
ERROR: Could not build wheels for pyaudio, which is required to install pyproject.toml-based projects

错误信息显示,pyaudio 依赖的 portaudio.h 文件无法找到,这是因为 PyAudio 需要依赖 PortAudio 库,而你的系统中没有安装该库。

你可以通过以下步骤解决这个问题:

1. 安装 PortAudio

在大多数基于 Debian 的系统(如 Ubuntu)上,可以通过包管理器 apt 安装 PortAudio 依赖。

运行以下命令:

sudo apt-get install portaudio19-dev

该命令会安装开发版本的 PortAudio,包含头文件 portaudio.h,这是 PyAudio 构建时所需要的。

2. 重新安装 PyAudiosounddevice

安装完 PortAudio 库后,重新运行安装命令:

pip install pyaudio sounddevice

如果你使用的是其他 Linux 发行版

如果你不是使用 Ubuntu 或 Debian 系列的 Linux 发行版,安装 portaudio 库的命令可能不同。你可以根据你的发行版查找相应的安装命令,例如:

  • Fedora:

    sudo dnf install portaudio-devel
    
  • Arch Linux:

    sudo pacman -S portaudio
    

3. 如果你仍然遇到问题

如果问题依然存在,可以考虑使用 PyAudio 的预编译二进制版本,通过 pip 安装预编译的包:

pip install pipwin
pipwin install pyaudio

总结

这个错误是由于缺少 portaudio 开发库导致的,通过安装 portaudio19-dev 库来解决此问题,然后重新安装 pyaudio

这篇关于src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147425

相关文章

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

SpringBoot内嵌Tomcat临时目录问题及解决

《SpringBoot内嵌Tomcat临时目录问题及解决》:本文主要介绍SpringBoot内嵌Tomcat临时目录问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录SprinjavascriptgBoot内嵌Tomcat临时目录问题1.背景2.方案3.代码中配置t