Голосовой ассистент - непонятная ошибка
Пишу голосового ассистента. В python IDLE всё нормально работает,а через консоль, когда дело доходит до выбора команды,закрывается с непонятной ошибкой.
import os
import webbrowser
import sys
import pyttsx3
import datetime, time
import random
import pyowm
from requests_html import HTMLSession
speak = pyttsx3.init()
name = os.path.isfile("name.txt")
data = 'дата', 'скажи дату', 'какая дата'
r = random.randint(1, 8)
_time_ = 'скажи время', 'сколько время', 'какое сейчас время'
no = 'нет', 'нет спасибо', 'больше нет'
yes = 'да', 'нужно', 'нет нужно'
vi = 'выход'
ch = 1, 21, 31, 41, 51, 61
gl = 'а', 'о', 'э', 'е', 'и', 'ы', 'у', 'ё', 'ю', 'я', 'е'
sogl = 'б', 'в', 'г', 'д', 'ж', 'з', 'й', 'к', 'л', 'м', 'н', 'п', 'р', 'с', 'т', 'ф', 'х', 'ц', 'ч', 'ш', 'щ'
com = "что вы хотели?", "что мне сделать?", "вы что-то хотели?"
weather = 'погода', 'скажи погоду', 'расскажи погоду'
i = 0
if name == True:
f = open("name.txt", "r")
name1 = f.read()
f.close()
print("привет", name1)
speak.say("привет" + name1)
speak.runAndWait()
dr = datetime.date(2004, 5, 22)
aa = datetime.date.today()
if aa.month == dr.month and aa.day == dr.day:
print("Поздравляю тебя с днем рождения!")
speak.say("Поздравляю тебя с днем рождения!")
speak.runAndWait()
time.sleep(1)
com1 = random.choice(com)
print(com1)
speak.say(com1)
speak.runAndWait()
while True:
mycom = input(":")
while True:
if mycom in weather:
owm = pyowm.OWM('a761341d5c07239dd9ab9f8c69c94aa2', language = 'ru')
_weather_ = input("город/страна:")
observation = owm.weather_at_place(_weather_)
w = observation.get_weather()
weather1 = _weather_[-1]
if weather1 in sogl:
city = _weather_ + 'е'
ww = w.get_detailed_status()
print('В', city, 'сейчас', ww)
speak.say('В' + city + 'сейчас' + ww)
speak.runAndWait()
temp = w.get_temperature ('celsius')["temp"]
if temp in ch:
print('температура в районе',temp, 'градуса')
speak.say('температура в районе' + str(temp) + 'градуса')
speak.runAndWait()
i +=1
if i == r:
print("вам еще что-то нужно?")
speak.say("вам еще что-то нужно?")
speak.runAndWait()
i -=r
while True:
comc = input(":")
if comc in no:
print('завершение программы...')
time.sleep(2)
sys.exit()
break
elif comc in yes:
print('')
break
else:
print('я тебя не поняла')
speak.say('я тебя не поняла')
speak.runAndWait()
break
else:
print('температура в районе',temp, 'градусов')
speak.say('температура в районе' + str(temp) + 'градусов')
speak.runAndWait()
i +=1
if i == r:
print("вам еще что-то нужно?")
speak.say("вам еще что-то нужно?")
speak.runAndWait()
i -=r
while True:
comc = input(":")
if comc in no:
print('завершение программы...')
time.sleep(2)
sys.exit()
break
elif comc in yes:
print('')
break
else:
print('я тебя не поняла')
speak.say('я тебя не поняла')
speak.runAndWait()
break
elif weather1 in gl:
_weather_ = _weather_[0:-1]
city3 = _weather_ + 'е'
ww = w.get_detailed_status()
print('В', city3, 'сейчас', ww)
speak.say('В' + city3 + 'сейчас' + ww)
speak.runAndWait()
temp = w.get_temperature ('celsius')["temp"]
if temp in ch:
print('температура в районе',temp, 'градуса')
speak.say('температура в районе' + str(temp) + 'градуса')
speak.runAndWait()
i +=1
if i == r:
print("вам еще что-то нужно?")
speak.say("вам еще что-то нужно?")
speak.runAndWait()
i -=r
while True:
comc = input(":")
if comc in no:
print('завершение программы...')
time.sleep(2)
sys.exit()
break
elif comc in yes:
print('')
break
else:
print('я тебя не поняла')
speak.say('я тебя не поняла')
speak.runAndWait()
break
else:
print('температура в районе',temp, 'градусов')
speak.say('температура в районе' + str(temp) + 'градусов')
speak.runAndWait()
i +=1
if i == r:
print("вам еще что-то нужно?")
speak.say("вам еще что-то нужно?")
speak.runAndWait()
i -=r
while True:
comc = input(":")
if comc in no:
print('завершение программы...')
time.sleep(2)
sys.exit()
break
elif comc in yes:
print('')
break
else:
print('я тебя не поняла')
speak.say('я тебя не поняла')
speak.runAndWait()
break
elif mycom in _time_:
qe = time.strftime("сейчас %X", time.localtime())
print(qe)
speak.say(qe)
speak.runAndWait()
i +=1
if i == r:
print("вам еще что-то нужно?")
speak.say("вам еще что-то нужно?")
speak.runAndWait()
i -=r
while True:
comc = input(":")
if comc in no:
print('завершение программы...')
time.sleep(2)
sys.exit()
break
elif comc in yes:
print('')
break
else:
print('я тебя не поняла')
speak.say('я тебя не поняла')
speak.runAndWait()
break
elif mycom in data:
_qe_ = time.strftime("сегодня %B %d, %Y год", time.localtime())
print(_qe_)
speak.say(_qe_)
speak.runAndWait()
i +=1
if i == r:
print("вам еще что-то нужно?")
speak.say("вам еще что-то нужно?")
speak.runAndWait()
i -=r
while True:
comc = input(":")
if comc in no:
print('завершение программы...')
time.sleep(2)
sys.exit()
break
elif comc in yes:
print('')
break
else:
print('я тебя не поняла')
speak.say('я тебя не поняла')
speak.runAndWait()
break
elif mycom in vi:
print('завершение программы...')
time.sleep(2)
sys.exit()
else:
if 'найди' in mycom:
poisk = mycom.replace('найди', '')
webrowser.open('https://yandex.ru/search/?lr=10735&text='+ poisk)
elif 'скажи' in mycom:
poisk1 = mycom.replace('скажи', '')
webrowser.open('https://yandex.ru/search/?lr=10735&text='+ poisk1)
else:
webrowser.open('https://yandex.ru/search/?lr=10735&text='+ mycom)
elif name == False:
name2 = input("имя:")
f = open("name.txt", "a")
f.write(name2)
f.close()
print("привет", name2)
speak.say("привет" + name2)
speak.runAndWait()
input()`введите сюда код`