状态={ MOB_NO:[MessageHandler(filters.text,reply_to)],
},
属性错误:模块“telegram.ext.filters”没有属性“文本”
我安装 pip install python-telegram-bot。
这里我们导入模块。 从 telegram.ext 导入(更新程序、CommandHandler、MessageHandler、过滤器、 对话处理程序)
当我们处理消息时,它会说。
属性错误:模块“telegram.ext.filters”没有属性“文本”
从 python-telegram-bot 版本 20 开始,过滤器库为小写,单个过滤器全部为大写。
所以在 v13.7 之前我们有
Filters.text
,但从 v20 开始它变成了 filters.TEXT
。
也许在您的
requirements.txt
文件中您有 python-telegram-bot>=13.4
,因此您要么将其更改为 python-telegram-bot==13.7
,要么需要更新您的代码。
请注意,这也适用于导入,直到 v13.7:从
telegram.ext import Filters
变为 telegram.ext import filters
。
来源:https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-20.0
很可能您正在使用最新版本的软件包。将 python-telegram-bot 版本降级至 13.7。
pip install python-telegram-bot==13.7 --force-reinstall
并使用大写F的“过滤器”
发生这种情况是因为 Filters 类已被删除。 filters 现在直接是过滤器模块的属性/类。 可供使用的过滤器类(如 Filters.all)现在已大写(filters.ALL)。
您应该导入过滤器而不是过滤器,并且您应该阅读以下文档:https://docs.python-telegram-bot.org/en/stable/telegram.ext.filters.html这样您就可以了解要做什么使用。
因此,对于您的问题,filters.TEXT应该有效。