为什么我换了一台电脑,同样的代码会报 has no attribute错误呢?

为什么我换了一台电脑,同样的代码会报 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拿回家也还是不行,
感觉应该是环境的问题,不知道各位有什么看法?


回答:

问题解决了,是我自己的麦没插好。。。pyaudio报的错


回答:

不建议在__del__里写太多自己的代码,最好写成显示的方法调用。

以上是 为什么我换了一台电脑,同样的代码会报 has no attribute错误呢? 的全部内容, 来源链接: utcz.com/a/159151.html

回到顶部