命令行运行Python脚本出现KeyError: 'Telegram'错误求助
解决终端运行Python脚本报KeyError: 'Telegram'的问题
这问题我碰到过不少,本质是终端环境和IDE环境的差异导致配置文件没被正确加载,咱们一步步排查解决:
1. 先解决工作目录不一致的问题
IDE(比如Thonny、PyCharm)默认会把你的项目根目录设为脚本的工作目录,但终端里你可能在~(用户主目录)下直接运行脚本,这时候脚本找配置文件是相对于终端当前目录,而不是脚本所在的目录,自然找不到Telegram配置段。
两种快速解决方法:
- 先切换到脚本所在目录再运行:
cd /home/pi/telegram/telethon && python tele.py - 或者修改脚本,用绝对路径加载配置文件(推荐,避免以后再踩坑):
import os from configparser import ConfigParser # 获取脚本自身的绝对路径 script_path = os.path.abspath(__file__) script_dir = os.path.dirname(script_path) # 替换成你的配置文件名(比如config.ini) config_file = os.path.join(script_dir, "config.ini") config = ConfigParser() # 加载指定路径的配置文件 config.read(config_file)
2. 检查Python环境是否和IDE一致
有时候终端里的python命令指向的Python版本/虚拟环境,和IDE用的不是同一个,导致配置文件的加载路径或者依赖有差异。
排查步骤:
- 先在IDE里查看当前使用的Python解释器路径(比如PyCharm在
File → Settings → Project: 你的项目名 → Python Interpreter,Thonny在Run → Select interpreter) - 终端里直接用这个绝对路径运行脚本,比如:
/usr/local/bin/python3.7 /home/pi/telegram/telethon/tele.py - 或者试试用
python3代替python运行,避免系统默认Python版本不一致:python3 /home/pi/telegram/telethon/tele.py
3. 验证配置文件的格式和位置
最后确认你的配置文件本身没问题:
- 确保配置文件(比如
config.ini)的格式正确,[Telegram]段必须存在,比如:[Telegram] api_id = 你的API_ID api_hash = 你的API_HASH - 可以在脚本开头加一行调试代码,看看配置文件有没有被正确加载:
config = ConfigParser() loaded_files = config.read("config.ini") print(f"加载的配置文件:{loaded_files}") # 如果输出空列表,说明没找到文件
内容的提问来源于stack exchange,提问作者Noser
相关产品推荐
相关产品推荐

