AttributeError:模块“telegram.ext.filters”没有属性“text”

问题描述 投票:0回答:3

状态={ 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
3个回答
4
投票

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


1
投票

很可能您正在使用最新版本的软件包。将 python-telegram-bot 版本降级至 13.7。

 pip install python-telegram-bot==13.7 --force-reinstall

并使用大写F的“过滤器”


0
投票

发生这种情况是因为 Filters 类已被删除。 filters 现在直接是过滤器模块的属性/类。 可供使用的过滤器类(如 Filters.all)现在已大写(filters.ALL)。

您应该导入过滤器而不是过滤器,并且您应该阅读以下文档:https://docs.python-telegram-bot.org/en/stable/telegram.ext.filters.html这样您就可以了解要做什么使用。

因此,对于您的问题,filters.TEXT应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.