You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Python键盘监听代码报错NameError: name 'Listener' is not defined如何解决

错误触发原因
  • 你代码中使用的Listener类、Key枚举类都属于第三方库pynput的keyboard子模块,代码开头没有导入这两个对象,Python解释器无法识别对应的名称,因此抛出NameError: name 'Listener' is not defined
  • 除了导入问题外,你的代码还存在3处隐藏语法/逻辑错误:
    1. 打印语句的格式化占位符写为了(0),正确写法是{0},否则无法正常输出按键内容
    2. 实例化Listener时传入的释放回调参数名写为了on_Release,首字母大写不符合参数定义,会导致释放按键的回调无法触发
    3. format和括号之间多了不必要的空格,虽然不会直接报错但不符合Python编码规范
解决步骤
  1. 若未安装依赖库,先执行安装命令:
    pip install pynput
  2. 修正代码的导入语句和所有语法问题,完整可运行代码如下:
from pynput.keyboard import Key, Listener

def on_press(key):
    print("{0} pressed".format(key))

def on_release(key):
    if key == Key.esc:
        # 按下ESC键时停止监听
        return False

with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

内容的提问来源于stack exchange,提问作者coldixi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:54:07