Python3.7 无法安装pyaudio

度娘的结果基本都是这个,pip install pyaudio.....然而十有八九你的电脑不买账,会报错。

报错信息:

    running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
copying src\pyaudio.py -> build\lib.win-amd64-3.7
running build_ext
building '_portaudio' extension
error: [WinError ] 系统找不到指定的路径。:
'D:\\VS2015\\VC\\PlatformSDK\\lib'

或者:

 [WinError 3] 系统找不到指定的路径。: 'C:\\Program Files (x86)\\Microsoft\\v8.1\\lib'

还有....

从网上找到解决Python安装PyAudio库问题基本都是基于Linux系统下的,所以我觉得也有必要写一下这个安装库的方法,分享给到大家。

我们的解决方法非常简单,就是pip不是不行么,那咱们自己下好了库(PyAudio),安装上不就好了,这就是我们的解决安装等疑难杂症问题的基本思路,对,就是变通;

到这个地址下载对应的whl

Python Extension Packages for Windows

CP37就是python3.7--amd64应该都知道就是系统的位数,选好了再下。

下载好了之后打开“命令提示符”,cd到下载的路径然后,cd命令还不会使的话你该反省一下,去百度一下吧,有很多的。

注:下面的FileName,就是文件名称,全名。(当然要加上文件格式.whl)

pip install "FileName"

安装成功测试:

安装成功后我们来写一个实际案例,庆祝一下。

录制一个4s的wav格式音频文件,

因为RECORD_SECONDS = 5.

import pyaudio
import wave #定义音频数据参数
CHUNK = 1024 #块
FORMAT = pyaudio.paInt16
CHANNELS = 2 #渠道
RATE = 44100 #率
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "Recording.wav" p = pyaudio.PyAudio() # 打开数据流
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK) print("& Start Recording & :") frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data) print("#### done recording ####") # 停止数据流
stream.stop_stream()
stream.close() # 关闭 PyAudio
p.terminate() wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

ok

同理我就直接上代码,音频的播放:

#引入库
import wave
import pyaudio #定义数据流块
chunk = 1024 #只读方式打开wav文件
f = wave.open(r"FilePath","rb") p = pyaudio.PyAudio() #打开数据流
stream = p.open(format = p.get_format_from_width(f.getsampwidth()),
channels = f.getnchannels(),
rate = f.getframerate(),
output = True) #读取数据
data = f.readframes(chunk) #播放FileName.wav
while data != None:
stream.write(data)
data = f.readframes(chunk) #停止数据流
stream.stop_stream()
stream.close() #关闭 PyAudio
p.terminate()

文章实例的借鉴学习于:

http://people.csail.mit.edu/hubert/pyaudio/docs/#class-pyaudio

Python3.7在win10下安装PyAudio库以及实现音频的录制与播放的更多相关文章

  1. Python3.7安装pyaudio库报错问题及修复

    本人今天在使用python编写语音相关项目是需要引用pyaudio库,结果发现引用失败,刚开始报错内容如下: 说让我升级pip,然后我就按照提示升级了pip,然后又再次尝试安装pyaudio库,然后还 ...

  2. WIN10下安装python3.7.2出现“尝试创建C:\Users\XX\AppData\Roaming\Microsoft\Installer时出错”

    WIN10下安装python3.7.2出现"尝试创建C:\Users\XX\AppData\Roaming\Microsoft\Installer时出错" 1.右键点击安装包以管理 ...

  3. win10下安装ubuntu18.04

    在win10下安装Ubuntu18.04,双系统共存.Ubuntu 18.04 使用的是Gnome桌面. 查看系统的启动模式: Win+R打开运行,输入msinfo32,回车查看系统信息.在BIOS模 ...

  4. win10下安装使用Docker:Docker for Windows

    一.下载win10下安装docker和桌面管理的工具: 下载地址:Docker for Windows 安装软件学习地址:https://www.runoob.com/docker/docker-tu ...

  5. ubuntu 下安装boost库

    ubuntu下安装boost库,,在网上试了一些其他人推荐的libboost-dev 但是会缺少,编译程序会报错: /usr/bin/ld: cannot find -lboost_serializa ...

  6. win10下安装Ubuntu + 修复Ubuntu引导

    如何在已安装 Windows 10 的情况下安装 Linux(Ubuntu 15.04)双系统? - Microsoft Windows - 知乎http://www.zhihu.com/questi ...

  7. linux下安装uuid库

    1.linux 下安装UUID库 1.1)ubuntu下安装uuid链接库 sudo apt-get install uuid-dev 1.2)CentOS yum install libuuid-d ...

  8. DELPHI7在WIN8和WIN10下安装和运行

    DELPHI7在WIN8下安装后可以打开运行,但发现设置断点DEBUG运行DLL工程时会卡死(IDE长时间无反应,不报错). DELPHI7在WIN10下安装后打开的时候会报错,无法运行. 以上两种情 ...

  9. 关于python下安装PIL库遇到的问题及解决办法

    关于python下安装PIL库遇到的问题及解决办法 关于python下安装PIL库遇到的问题及解决办法 :在下面这个网址下载pipllow(a replacement for PIL) www.lfd ...

随机推荐

  1. 利用python的numpy创建矩阵并对其赋值

    创建一个3X3的矩阵并对其赋值: x = numpy.array([[1,2,3],[4,5,6],[7,8,9]]) print x print x.shape 运行结果: [[ ] [ ] [ ] ...

  2. 前端面试整理(HTML&CSS)

    1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度.行高及外边距和内边距都不可改变,文字图片的宽度不可改变,只能容纳文本或者其他行内元素:其中im ...

  3. javascript入门笔记8-window对象

    History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能. 注意:从窗口被打开的那一刻开始记录,每个浏览器窗口.每个标签页乃至每个框架,都 ...

  4. 插入数据返回自增id及插入更新二合一

    原文https://blog.csdn.net/dumzp13/article/details/50984413 JDBC: con.setAutoCommit(false); String sql ...

  5. 原生Ajax发送请求

    ajax  get&post 1.使用get发送请求,会有请求缓存 1)什么叫请求缓存,请求信息相同浏览器不会再向服务器发送请求,导致访问服务器失败. 2)解决:将随机数添加到请求路径后面参数 ...

  6. Java - 得到项目中properties属性文件中定义的属性值

    public static String getPropertiesValue(String fileName, String key) {   return ResourceBundle.getBu ...

  7. Linux下配置npm存放路径,解决权限问题

    1.打开cmd命令行,查看当前配置 输入 npm config ls 先看一下当前npm的配置环境,由于我已经修改过,所以可以看到修改后的路径 2.修改路径 这里需要修改两个路径,module路径和c ...

  8. Linux crontab 实现秒级定时任务

    1   crontab 的延时: 原理:通过延时方法 sleep N  来实现每N秒执行. crontab -e 输入以下语句,然后 :wq 保存退出. * * * * * /usr/bin/curl ...

  9. 【机器学习算法基础+实战系列】KNN算法

    k 近邻法(K-nearest neighbor)是一种基本的分类方法 基本思路: 给定一个训练数据集,对于新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例多数属于某个类别,就把输 ...

  10. python3 练习题100例 (十八)托儿所问题

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- """练习十八:某托儿所有大.中.小三个班级,其儿童月龄分别用如下 三个列表 ...