DIscord.py Винтики

#python #discord #discord.py-rewrite #discogs-api

#python #Discord #discord.py-переписать #discogs-api

Вопрос:

Я закодировал своего бота в одном main.py . Но когда я просматриваю код, чтобы что-то изменить, это невероятно сложно.Я попытался выполнить поиск и нашел информацию о cogs.Я пытаюсь организовать свою discord.py бот использовал cogs и получил следующую ошибку

     Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 607, in _load_from_module_spec
    spec.loader.exec_module(lib)
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/runner/Commander/cogs/Cats.py", line 6, in <module>
    class Images(commands.cog):
TypeError: module() takes at most 2 arguments (3 given)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "main.py", line 58, in <module>
    Client.load_extension(f'cogs.Cats')
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 664, in load_extension
    self._load_from_module_spec(spec, name)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 610, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.ext.commands.errors.ExtensionFailed: Extension 'cogs.Cats' raised an error: TypeError: module() takes at most 2 arguments (3 given)
 

Мой Cats.py является

 import aiohttp
import discord
import asyncio
from discord.ext import commands

class Images(commands.cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.command()
    async def meow(self, ctx):
        async with ctx.channel.typing():
            async with aiohttp.ClientSession() as cs:
                async with cs.get("http://aws.random.cat/meow") as r:
                    data = await r.json()

                    em = discord.Embed(title="Meow")
                    em.set_image(url=data['file'])

                    await ctx.send(embed=em)


def setup(client):
    client.add_cog(Images(client))
 

Я добавляю винтики в main.py использование

 # Cogs Start

Client.load_extension(f'cogs.tictactoe')
Client.load_extension(f'cogs.gamble')
Client.load_extension(f'cogs.Cats')

# Cogs End
 

пожалуйста, помогите, заранее спасибо

Ответ №1:

Ваша ошибка исходит из этой строки:

 class Images(commands.cog):
 

Ваш класс должен унаследовать от commands.Cog , а не commands.cog :

 class Images(commands.Cog):