我有一个使用python-telegram-bot编写的电报机器人,工作正常,但几周后,当我开始脚本时,它似乎找不到一些库&模块。
例如,"Update"在我的代码中广泛使用,它工作得很好。但是现在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窗口。
我不认为有一种好的方法可以将环境转移到生产环境(如果我错了请纠正我),但是,您可以使用在您的环境中安装的完全相同的包构建一个新的环境:
pip freeze > requirements.txt
这将您在开发环境中使用的每个包保存在一个文件中。然后,您可以在docker文件中使用此文件来构建与开发bot时完全相同的依赖项,使用:
pip install -r requirements.txt
我找到了重新安装依赖的建议,它对我很有效。(虽然PyCharm IDE仍然显示"无法找到参考",但bot开始正常工作):
pip uninstall python-telegram-bot
pip install python-telegram-bot