运行Discord机器人出现AttributeError: module 'discord' has no attribute 'Client'报错
问题排查与解决步骤
- 第一步:确认安装的依赖包正确
绝大多数出现该报错的原因是错装了名为discord的无效第三方包,而非官方机器人库discord.py。先执行卸载命令清理错误包:
再安装官方正确的依赖包,注意要在你当前项目的虚拟环境下执行该命令,避免安装到全局环境不生效:pip uninstall discordpip install discord.py - 第二步:适配discord.py v2.x+版本的初始化规则
如果你安装的是2.0及以上版本的discord.py,不再支持无参初始化Client,必须传入intents参数,同时你原有代码里还有占位符符号写错的语法问题,修改后的完整代码如下:import discord import random TOKEN = 'xxx' # 配置机器人权限项,根据实际需要开启 intents = discord.Intents.default() # 如果需要读取消息内容,需要额外开启该项,同时要去Discord开发者后台的机器人设置页开启对应权限 intents.message_content = True client = discord.Client(intents=intents) @client.event async def on_ready(): # 修正原代码里的方括号错误,占位符要用大括号闭合 print(f'We have logged in as {client.user}') client.run(TOKEN) - 第三步:检查本地文件命名冲突
查看你的项目根目录下是否存在名为discord.py的文件,如果有需要重命名为其他名称,否则Python导入模块时会优先读取本地同名文件,导致无法正确引入安装的第三方库。 - 第四步:验证安装结果
执行命令pip show discord.py,如果能正常输出版本、安装路径等信息则说明安装正确,如果提示找不到包则回到第一步重新操作。
内容的提问来源于stack exchange,提问作者Haymon
相关产品推荐
相关产品推荐

