discord.ext.commands.errors.CommandInvokeError:命令引发了异常:NoEntryPointError:扩展名“ cogs.help”没有“设置”功能

时间:2020-10-18 04:52:45

标签: python python-3.x discord discord.py discord.py-rewrite

我正在为我的不和谐机器人做齿轮。

但是,尝试加载齿轮会提示我错误

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NoEntryPointError: Extension 'cogs.help' has no 'setup' function.

我的加载程序的代码是;

@bot.command()
async def load(ctx, extension):
    id = str(ctx.author.id)
    if id == '721029142602056328':
        bot.load_extension(f'cogs.{extension}')
        print(f'Specified cog {extension} loaded!')
        author = ctx.message.author

        embed = discord.Embed(
            colour = discord.Colour.from_rgb(255, 237, 76)
        )

        embed.add_field(name='Cog Loaded', value=f"Specified cog {extension} loaded by {author}.", inline=False)

        await ctx.send(embed=embed)
    else:
        embed = discord.Embed(
            colour = discord.Colour.from_rgb(255, 237, 76)
        )

        embed.add_field(name="You can't do this!", value=f"You can't load the {extension} cog.", inline=False)

        await ctx.send(embed=embed)

@bot.command()
async def unload(ctx, extension):
    id = str(ctx.author.id)
    if id == '721029142602056328':
        bot.unload_extension(f'cogs.{extension}')
        print(f'Specified cog {extension} unloaded!')
        author = ctx.message.author

        embed = discord.Embed(
            colour = discord.Colour.from_rgb(255, 237, 76)
        )

        embed.add_field(name='Cog Unloaded', value=f"Specified cog {extension} unloaded by {author}.", inline=False)

        await ctx.send(embed=embed)
    else:
        embed = discord.Embed(
            colour = discord.Colour.from_rgb(255, 237, 76)
        )

        embed.add_field(name="You can't do this!", value=f"You can't unload the {extension} cog.", inline=False)

        await ctx.send(embed=embed)

for filename in os.listdir('./cogs'):
    if filename.endswith('.py'):
        bot.load_extension(f'cogs.{filename[:-3]}')

如果任何人都可以解决我的错误,将不胜感激。还需要注意的是,我可以启动bot,但是必须删除“对于os.listdir中的文件名...”

谢谢

编辑

我刚刚意识到我在写这篇文章时忘记将代码包含在我的齿轮中。

import discord
from discord.ext import commands


class Help(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

def setup(bot):
    bot.add_cog(Help(bot))

2 个答案:

答案 0 :(得分:0)

这是一个缩进问题。

请确保设置功能与__init__

对齐
import discord
from discord.ext import commands


class Help(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    def setup(bot):
        bot.add_cog(Help(bot))

答案 1 :(得分:0)

我发现了错误。

我的2个机器人位于1个名为Discord Bot Coding的文件夹中,因此它是从我的机器人的cog文件夹之一而不是预定的机器人中读取的。