为什么我换了一台电脑,同样的代码会报 has no attribute错误呢?
我先贴一下代码吧
# -*- coding:utf-8 -*-
# author doudouji 1020763068@qq.com
import pyaudio
from loguru import logger
class Recorder(object):
def __init__(self, FORMAT=pyaudio.paInt16, CHANNELS=1, RATE=16000, CHUNK=1024):
self.CHUNK = CHUNK
self.FORMAT = FORMAT
self.CHANNELS = CHANNELS
self.RATE = RATE
self.p = pyaudio.PyAudio()
self.stream = self.p.open(format=self.FORMAT,
channels=self.CHANNELS,
rate=self.RATE,
input=True,
frames_per_buffer=self.CHUNK)
logger.info('Recorder已创建')
return
def get_record_audio(self):
frames = []
for i in range(0, int(self.RATE / self.CHUNK)):
data = self.stream.read(self.CHUNK)
frames.append(data)
return frames
def __del__(self):
self.stream.stop_stream()
self.stream.close()
self.p.terminate()
logger.info('Recorder已销毁')
return
我这里的代码本来是在公司电脑上写的,正常可运行,由于有使用讯飞的sdk,所以干脆直接打了个压缩包带回家了,在家的电脑上也特地更新了python的环境和各种第三方包,但运行的时候会在__del__()里self.stream.stop_stream()这句报错AttributeError: class 'Recorder' has no attribute 'stream'这种错误。
我开始觉得是pyaudio包的问题,但我直接把公司电脑上下载的whl拿回家也还是不行,
感觉应该是环境的问题,不知道各位有什么看法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题解决了,是我自己的麦没插好。。。pyaudio报的错
不建议在__del__里写太多自己的代码,最好写成显示的方法调用。