discord.py机器人启动报错Extension 'cogs.mod'无法加载求助
问题原因
- 模块路径配置错误:discord.py的
load_extension方法遵循Python标准模块导入规则,你从项目根目录下的launcher.py启动程序,cogs文件夹实际存放在lib目录下,你当前写的cogs.xxx路径会让Python在根目录查找cogs文件夹,匹配不到实际路径就会报错。 - 缺少模块标识文件:如果
lib/cogs目录下没有__init__.py文件,Python不会将该目录识别为可导入的模块包,也会触发扩展找不到的报错。
修复步骤
- 检查
lib/cogs目录,确认存在空的__init__.py文件,没有就手动新建即可。 - 修改
bot.py中的扩展加载代码,替换为正确的模块前缀:
# 原加载代码 client.load_extension(f'cogs.{filename[:-3]}') # 修改后的代码 client.load_extension(f'lib.cogs.{filename[:-3]}')
- 额外检查
launcher.py的代码一致性:你当前launcher.py导入的是from lib.bot import bot,但执行启动用的是client.run,如果bot.py中实例化的机器人对象命名为bot,需要把launcher.py的启动代码改为bot.run('你的TOKEN'),避免出现变量未定义的额外报错。
内容的提问来源于stack exchange,提问作者PashMan
相关产品推荐
相关产品推荐

