You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3报错AttributeError: 'function' object has no attribute 'glob'求助

解决AttributeError: 'function' object has no attribute 'glob'问题

错误核心原因

这个错误的本质是你把glob当成了函数而非模块来调用,常见触发场景有两种:

  • 导入方式错误:比如用了from glob import glob,此时glob是模块内的glob()函数,而非glob模块本身,自然没有.glob属性;
  • 变量名冲突:代码中定义了同名的glob函数/变量,覆盖了glob模块的引用。

另外从错误信息里的代码行还能看到一个小问题:os.path.abspath()缺少必填参数,应该传入遍历到的文件路径_。

修复步骤

1. 调整导入语句

如果你的导入是:

from glob import glob

那么调用时直接用glob()即可,无需加.glob,修改对应代码行:

meme_file_paths = [os.path.abspath(_) for _ in glob("memes/*.png")]

如果要保留glob.glob()的写法,确保导入语句是:

import glob

2. 排查变量名冲突

检查代码中是否存在自定义的glob函数或变量,比如:

def glob():
    # 自定义逻辑
    pass

这类代码会覆盖glob模块的引用,需要给自定义的函数/变量改名。

3. 修正os.path.abspath的参数

确保列表推导式里的os.path.abspath传入正确参数,也就是遍历到的文件路径_,代码行应为:

meme_file_paths = [os.path.abspath(_) for _ in glob.glob("memes/*.png")]

修复后的完整代码片段

elif '!meme' in message.content:
    random_message_i = ["Hier das passt zu dir:", "Hier bitte du Knecht:", "Hier... keko:",
                        "Ein Meme für das Meme:", "Gönn dir:", "Einfach wild xD:"]
    await message.channel.send(f"{random.choice(random_message_i)}")
    meme_file_paths = [os.path.abspath(_) for _ in glob.glob("memes/*.png")]
    random_meme_i = random.choice(meme_file_paths)
    await message.channel.send(file=discord.File(random_meme_i))
    print("Last command: !meme")

内容的提问来源于stack exchange,提问作者cxyro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:25:30