首页 > 解决方案 > 我正在尝试制作一个搜索维基百科的不和谐机器人

问题描述

我正在尝试制作一个不和谐的机器人,让人们搜索维基百科,例如有人发送 /wikipedia [他们的搜索],它会搜索它并将结果发送到聊天中。这是我第一次尝试制作机器人。这是我到目前为止得到的,但我经常出错。

import wikipedia
def search():
    search = wikipedia.summary(question, sentances=2)
    return search

[some other code]

@client.command()
async def wikipedia(ctx,*,question):
    await ctx.send(search())

我得到的错误说

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: 
 AttributeError: 'Command' object has no attribute 'summary' 

标签: pythondiscord.py-rewrite

解决方案


问题是您的函数名称与库本身具有相同的名称。因此,当您调用 时wikipedia.summary,您的代码会认为您正在尝试访问wikipedia函数的 summary 属性。

据我所知,您有两种选择来解决此问题。你也可以

  • 更改命令的名称
  • 使用import x as y来更改维基百科库的名称

对于第一个,您可以将其更改为wikipedia_search而不是wikipedia,所以它看起来像这样:

@client.command()
async def wikipedia_search(ctx,*,question):
    await ctx.send(search())

对于第二个选项,您可以将导入行从 更改import wikipediaimport wikipedia as wikipedia_lib。然后,当您尝试使用该库时,您可以这样做wikipedia_lib.summary(question, sentances=2)

另外,作为旁注,您拼错sentences了 as sentances,这可能会导致错误。因此,我建议你改变它。


推荐阅读