【问题标题】:discord.py circular import (AttributeError: partially initialized module 'discord')discord.py 循环导入(AttributeError:部分初始化模块'discord')
【发布时间】:2020-08-09 08:09:50
【问题描述】:

我正在尝试编写一个 Discord 机器人,但该机器人无法启动并引发此错误:

AttributeError: partially initialized module 'discord' has no attribute 'Client' (most likely due to a circular import)

【问题讨论】:

    标签: python discord.py circular-dependency


    【解决方案1】:

    您的标题(在您有任何函数或方法调用之前)应包括以下项目:

    import discord
    from discord.ext import commands
    

    您还需要初始化您的 discord 客户端。在这种情况下,客户端代表您的脚本与不和谐服务器的连接。如果你不初始化,你的命令都不会起作用。

    client = commands.Bot(command_prefix=".")
    

    在括号内,您可以声明命令的前缀。例如,.help 与 !help。

    最后,您需要将客户端连接到服务器并在连续事件循环中运行它。这应该在文件的末尾。

    client.run('your bot's token')
    

    【讨论】:

      【解决方案2】:

      尝试定义你的机器人/客户端

      var client = new Discord.Client();
      

      【讨论】:

      • 这甚至不是正确的语言。
      【解决方案3】:

      如果您的文件名为discord.py,请尝试更改名称bot.py,例如

      【讨论】:

      • 愿意解释一下为什么更改文件名有效吗?这是记录在某处还是根据您的经验?
      • @Arcanefoam 为发帖人回答,“部分初始化模块”和“很可能由于循环导入”这两部分是 Python 中发生循环导入的主要提示。并且更改文件名是正确的解决方案。
      猜你喜欢
      • 1970-01-01
      • 2021-09-24
      • 2021-07-18
      • 2021-11-13
      • 2020-06-14
      • 2021-02-14
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多