Во время компиляции файла:
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)
Можете помочь исправить?
Заранее спасибо)