不和.py重写:类型错误:Cog必须从Cog派生

2024-09-30 16:38:21 发布

您现在位置:Python中文网/ 问答频道 /正文

随着我的机器人越来越大,我试图实现cogs,但我遇到了一个问题。我已经准备好了我的全部代码,但是由于一些奇怪的原因,我一直得到这个错误:

    Traceback (most recent call last):
  File "C:\Users\Lauras\Desktop\Akagi Bot\main.py", line 107, in <module>
    bot.add_cog("cogs.fun")
  File "C:\Users\Lauras\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\bot.py", line 477, in add_cog
    raise TypeError('cogs must derive from Cog')
TypeError: cogs must derive from Cog

我的密码主.py看起来像这样:

^{pr2}$

“乐趣”齿轮如下:

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='~')

class FunCog:
    def __init__(self, bot):
        self.bot = bot

    @commands.command()
    async def hug(self, ctx):
        await ctx.send('has been hugged by', file=discord.File('iloveyou.gif'))
        pass


def setup(bot: commands.Bot):
    bot.add_cog(FunCog(bot))

有什么问题吗?我也在用不和.py重写。谢谢!在


Tags: frompyselfadddefbotlineusers
2条回答

感谢@Ellisein帮助我解决了class FunCog(commands.Cog):字符串代码。另一个帮助我修复代码的方法是在主.py用bot.load_extension("cogs.fun")!在

我建议您退房https://discordpy.readthedocs.io/en/latest/ext/commands/cogs.html 这将有助于您更好地了解齿轮。在

首先,您需要将bot.add_cog("cogs.fun")更改为bot.load_extension("cogs.fun")

这不是必需的,但您不需要再次定义bot。 将def setup(bot: commands.Bot):改为{}

您还需要将class FunCog:更改为class FunCog(commands.Cog):

我建议在重写版本出现新的更新时及时更新更改。下面是一个working cog file.示例的快速查看。 希望这有帮助!最大值

相关问题 更多 >