@Pyhon3x

В чем ошибка во время компиляции?

Во время компиляции файла:
main.py
# Telegram Бот


import random
from telebot import types
import telebot
import conf
from fractions import Fraction

bot = telebot.TeleBot(conf.token)

@bot.message_handler(content_types=['text'])
@bot.message_handler(commands=['start', 'help'])
def start(message):
    if message.text == "/help":
        bot.send_message(message.from_user.id, conf.helptext)
    elif message.text == "/start":
        bot.send_message(message.from_user.id, "Добро пожаловать!")
    elif message.text == "/dev":
        bot.send_message(message.from_user.id, conf.devtext)
        bot.register_next_step_handler(message, dev_menu)
    elif message.text == "/дроби":
        bot.send_message(message.from_user.id, "Введи первую дробь. Например: 12/89")
        bot.register_next_step_handler(message, drob)
    else:
        bot.send_message(message.from_user.id, "Я не понимать:(...")


def drob(message):
    global a
    a = Fraction(message.text)
    bot.send_message(message.from_user.id, "Введи вторую дробь. Например: 21/98")
    bot.register_next_step_handler(message, drob2)

def drob2(message):
    global b
    b = Fraction(message.text)
    des = telebot.types.ReplyKeyboardMarkup(True, True)
    des.row("Умножить", "Поделить", "Добавить", "Отнять")
    bot.send_message(message.from_user.id, "Что надо сделать с дробями?", reply_markup=des)
    bot.register_next_step_handler(message, drob3)

def drob3(message):
    if message.text == "Умножить":
        u = a*b
        bot.send_message(message.from_user.id, u)
    elif message.text == "Поделить":
        d = a/b
        bot.send_message(message.from_user.id, d)
    elif message.text == "Добавить":
        p = a+b
        bot.send_message(message.from_user.id, p)
    elif message.text == "Отнять":
        m = a-b
        bot.send_message(message.from_user.id, m)

def dev_menu(message):
    if message.text == "951379" or "943718" or "735910" or "934270":
        bot.send_message(message.from_user.id, conf.devTrue)
        print("Успешный вход в Dev_Menu")
        key_tests = telebot.types.ReplyKeyboardMarkup(True, True)
        key_tests.row("Тест: правильность считания", "Тест: ---")
        bot.send_message(message.from_user.id, "Клавиатура передана вам", reply_markup=key_tests)
        bot.register_next_step_handler(message, dev_menu_tests)
    else:
        bot.send_message(message.from_user.id, conf.devFalse)
        print("Без успешный вход в Dev_Menu")

def dev_menu_tests(message):
    if message.text == "Тест: правильность считания":
        a = random.randint(1,10)
        b = random.randint(1,10)
        ot = a + b
        plus = str(a) + " + " + str(b) + " равно " + str(ot) + "?"
        key_tests = telebot.types.ReplyKeyboardMarkup(True, True)
        key_tests.row("Да", "Нет")
        bot.send_message(message.from_user.id, plus, "Клавиатура передана вам", reply_markup=key_tests)
        bot.register_next_step_handler(message, dev_menu_tests2)

def dev_menu_tests2(message):
    if message.text == "Да":
        bot.send_message(message.from_user.id, "Спасибо")
    elif message.text == "Нет":
        bot.send_message(message.from_user.id, plus, "Спасибо, я передам разработчику")



bot.polling(none_stop=True)


Происходит ошибка:
69917 INFO: Building PYZ (ZlibArchive) E:\build\main\PYZ-00.pyz
Traceback (most recent call last):
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\Scripts\pyinstaller.exe\__main__.py", line 9, in <module>
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\__main__.py", line 111, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\__main__.py", line 63, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\build_main.py", line 844, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\build_main.py", line 791, in build
    exec(code, spec_namespace)
  File "E:\main.spec", line 18, in <module>
    pyz = PYZ(a.pure, a.zipped_data,
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\api.py", line 98, in __init__
    self.__postinit__()
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\datastruct.py", line 158, in __postinit__
    self.assemble()
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\api.py", line 128, in assemble
    self.code_dict = {
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\api.py", line 129, in <dictcomp>
    key: strip_paths_in_code(code)
  File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\utils.py", line 660, in strip_paths_in_code
    return code_func(co.co_argcount, co.co_kwonlyargcount, co.co_nlocals, co.co_stacksize,
TypeError: an integer is required (got type bytes)


Можете помочь исправить?
Заранее спасибо)
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 1
shabelski89
@shabelski89
engineer
Не знаю что Вы тестируете но например эта строка противоречит базовому синтаксису
if message.text == "951379" or "943718" or "735910" or "934270":

Надо указать явно каждое сравнение
If message.text == 'a' or message.text == 'b' or message.text == 'c':

Ну понятно надеюсь )
Но правильнее создать список значений и проверить есть ли в нем значение
L = ['a', 'b', 'c']
If message.text in L:
    Do
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы