开发远程关机Telegram Bot遇ModuleNotFoundError:已安装库无法识别
问题:Telegram Bot运行提示ModuleNotFoundError找不到'telegram'模块
我开发了一个可远程关闭电脑的Telegram Bot,代码编写完成且已安装所需依赖库,但运行时一直报ModuleNotFoundError,找不到'telegram'模块。已尝试将库更新至最新版本、多次遵循python-telegram-bot官方操作指南,问题仍未解决。使用系统为Windows 11 22H2 kb5023778。
代码
import telegram import os import daemon # Token TOKEN = '<My Token>' # 创建bot实例 bot = telegram.Bot(token=TOKEN) # 关机函数 def turn_off_pc(): # 关机命令 os.system('shutdown /s /t 0') # 消息处理函数 def handle_message(update, context): message = update.message.text if message == '/off': turn_off_pc() else: pass # bot命令处理器 def main(): # 创建命令处理器 from telegram.ext import CommandHandler, Updater command_handler = CommandHandler('off', handle_message) updater = Updater(token=TOKEN, use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(command_handler) # 后台运行 with daemon.DaemonContext(): updater.start_polling() updater.idle() # 启动bot if __name__ == '__main__': main()
报错信息
Traceback (most recent call last): File "D:\Python\Windows Shutter.py", line 1, in <module> import telegram ModuleNotFoundError: No module named 'telegram'
解决方案
- 检查Python环境一致性:Windows常存在多版本Python共存的情况,确保安装库的Python与运行脚本的Python是同一个版本。
- 执行
python --version查看当前运行的Python版本,再执行pip --version确认pip对应的Python版本是否匹配。若不匹配,用python -m pip install python-telegram-bot指定安装到当前Python环境。
- 执行
- 虚拟环境激活:如果使用了虚拟环境,必须先激活环境再安装依赖。激活命令:
- cmd中:进入虚拟环境的Scripts目录,执行
activate;PowerShell中执行.\activate,之后再运行pip install python-telegram-bot。
- cmd中:进入虚拟环境的Scripts目录,执行
- 管理员权限安装:右键终端选择「以管理员身份运行」,再执行安装命令,避免权限不足导致库安装不完整。
- 彻底卸载重装:先执行
pip uninstall python-telegram-bot完全卸载,再执行pip install python-telegram-bot --upgrade重新安装最新版。 - 额外提示:代码中用到的
daemon模块仅兼容类Unix系统,Windows下无法正常运行,后续可改用pythonw.exe运行脚本或配置Windows服务实现后台运行。
内容的提问来源于stack exchange,提问作者Uzz
相关产品推荐
相关产品推荐

