电报机器人 (python-telegram-bot) 中导入错误

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

我有一个使用 python-telegram-bot 编写的电报机器人,工作正常,但几周后,当我启动脚本时,它似乎找不到一些库和模块。

举个例子,“更新”在我的代码中被广泛使用,并且运行得很好。但现在python找不到了。

这是我的一些进口。

    from telegram import  Update, ForceReply, InlineQueryResultArticle, InputTextMessageContent, ReplyKeyboardRemove, InlineKeyboardButton, InlineKeyboardMarkup, Update, User, ReplyKeyboardMarkup, Contact, Message, KeyboardButton

这是错误。

    async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
NameError: name 'Update' is not defined

有谁知道解决办法吗?

我尝试迁移到新环境,使用 --pre 或 --upgrade 开关重新安装 python-telegram-bot,清除 python 缓存并重新加载 VS Code ssh 窗口。

python python-telegram-bot
3个回答
0
投票

我认为没有一种好的方法可以将环境转移到生产环境(如果我错了,请纠正我),但是,您可以使用与您的环境中安装的完全相同的软件包来构建新环境:

pip freeze > requirements.txt

这会将您在开发环境中使用的每个包保存在文件中。 然后,您可以在 docker 文件中使用此文件来构建与开发机器人完全相同的依赖项,使用:

pip install -r requirements.txt

0
投票

我发现建议重新安装依赖项,它对我有用。 (尽管 PyCharm IDE 仍然显示“无法找到参考”,但机器人开始正常工作):

pip uninstall python-telegram-bot
pip install python-telegram-bot

0
投票

不要这样做

pip install telegram
仅安装 python-telegram-bot 库,

现在让我们创建一个新环境并重试:

$ deactivate  # check if you've active environment
$ python -m venv newenv

$.\newenv\Scripts\activate   # for windows
$ source newenv/bin/activate # for mac or linux

然后安装库:

$ pip install python-telegram-bot -U

现在尝试运行你的机器人:

$ python main.py
© www.soinside.com 2019 - 2024. All rights reserved.