Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python ошибка в командной строке

Кирилл Столбовой Профи (822), открыт 2 дня назад
Я пытаюсь сделать бота для дискорда.
Но в консоли это:
======= Loading cogs =======
C:\Users\Empty\OneDrive\Desktop\discord-TicketBot-main\utils\load_cogs.py:13: RuntimeWarning: coroutine 'BotBase.load_extension' was never awaited
bot.load_extension(f"cogs.{filename[:-3]}")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
>> other.py
>> tickets.py
======= Cogs loaded! =======

[2024-06-29 15:08:56] [INFO ] discord.client: logging in using static token
[2024-06-29 15:08:58] [INFO ] discord.gateway: Shard ID None has connected to Gateway (Session ID: 87cd6245f3de99bec3b68671f0f24bd5).
[2024-06-29 15:09:00] [ERROR ] discord.client: Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\Empty\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\client.py", line 449, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Empty\OneDrive\Desktop\discord-TicketBot-main\bot.py", line 21, in on_ready
await bot.cogs['tickets'].init_func()
~~~~~~~~^^^^^^^^^^^
KeyError: 'tickets'

Я не могу понять в чём проблема. Помогите пожалуйста.
4 ответа
Андрей Михаилов Ученик (85) 2 дня назад
Переведи и прочитай...
Кирилл СтолбовойПрофи (822) 2 дня назад
Мне переводить код?
Андрей Михаилов Ученик (85) Кирилл Столбовой, 87cd6245f3de99bec3b68671f0f24bd5). [2024-06-29 15:09:00] [ОШИБКА ] discord.клиент: игнорирует исключение в on_ready Обратная трассировка (последний вызов): Файл "C:\Users\Empty\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\client.py ", строка 449, в _run_event ожидайте coro(*args, **kwargs) Файл "C:\Users\Empty\OneDrive\Desktop\discord-TicketBot-main\bot.py", строка 21, в файле on_ready await bot.cogs["билеты"].init_func() ~~~~~~~~^^^^^^^^^^^ Ключевая ошибка: "билеты"
Кирилл СтолбовойПрофи (822) 2 дня назад
Хмм... не вижу не слова про токен
Сталкер Оракул (57801) 2 дня назад
рано тебе ботов писать, ламер.
Кирилл СтолбовойПрофи (822) 2 дня назад
Гений бть
Сталкер Оракул (57801) Кирилл Столбовой, аха.Он.
Matvey Bot Знаток (329) 2 дня назад
бот дикорда? ошибка в слове tickets
Кирилл СтолбовойПрофи (822) 2 дня назад
Хмм и где же тут ошибка... оно должно как бы cog использовать, но оно отказывается.
Matvey Bot Знаток (329) Кирилл Столбовой, KeyError: 'tickets' я знаю это ошибка Error и RuntimeWarning: coroutine 'BotBase.load_extension' was never awaited was never awaited перевод никогда не ждали [2024-06-29 15:09:00] [ERROR ] discord.client: Ignoring exception in on_ready ошибка что discord.client: Ignoring exception уже готов Enable tracemalloc to get the object allocation traceback перевод Включите (не переведено на русский), чтобы получить обратную трассировку выделения объектов И всё это может быть тоже ошибкой
Минирсику писику Профи (827) 1 день назад
Ошибка, которую вы видите, связана с тем, что асинхронная функция bot.load_extension не была вызвана с использованием ключевого слова await. Это приводит к тому, что расширение не загружается должным образом, и, следовательно, ког tickets не существует, когда вы пытаетесь к нему обратиться в обработчике события on_ready.

Вот как вы можете исправить эту проблему:

Убедитесь, что вы используете await при вызове bot.load_extension.

Убедитесь, что ваш код выполняется в асинхронной функции.

Вот пример того, как это может выглядеть в вашем load_cogs.py
 import os 
import discord
from discord.ext import commands

async def load_cogs(bot):
for filename in os.listdir("./cogs"):
if filename.endswith(".py"):
print(f">> {filename}")
await bot.load_extension(f"cogs.{filename[:-3]}")
print("======= Cogs loaded! =======")

# Пример использования в основном файле bot.py
intents = discord.Intents.default()
bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
print(f"[2024-06-29 15:08:56] [INFO ] discord.client: logging in using static token")
await load_cogs(bot)
# Теперь вы можете безопасно обращаться к когам
if 'tickets' in bot.cogs:
await bot.cogs['tickets'].init_func()

bot.run('YOUR_BOT_TOKEN')
В этом примере функция load_cogs теперь асинхронная и использует await для загрузки расширений. Также я добавил вызов load_cogs в обработчик события on_ready, чтобы убедиться, что коги загружаются после того, как бот полностью готов.

Убедитесь, что ваш файл bot.py выглядит примерно так, чтобы все работало корректно.
Кирилл СтолбовойПрофи (822) 1 день назад
Спасибо, помогло
Похожие вопросы