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

py转exe后提示No module named keyboard及pynput按键报错如何解决

pynput按键监听报错解决

你看到的TypeError是因为pynput的按键回调传入的是KeyCode对象,不能直接转int,需要先取它的char属性再做转换。同时补充边界判断避免功能按键触发异常,修改后的代码如下:

from pynput.mouse import Button, Controller as MouseController
from pynput.keyboard import Key, Controller as KeyboardController, Listener, KeyCode

# 初始化控制器,分开命名避免混淆
mouse = MouseController()
keyboard = KeyboardController()

# 读取账号密码文件,建议加编码参数避免乱码
with open("parolochetach.txt", "r", encoding="utf-8") as f:
    list_of_lists = [line.strip().split() for line in f if line.strip()]

def on_press(key):
    # 只处理可输入的字符按键,过滤shift、esc等功能键
    if not hasattr(key, "char") or key.char is None:
        return
    # 只响应1-9的数字按键
    if not key.char.isdigit():
        return
    number = int(key.char)
    if number <1 or number>9:
        return
    # 修正原逻辑的越界问题:列表索引最大为len-1,所以必须number-1 < 列表长度
    if number - 1 >= len(list_of_lists):
        return
    # 执行输入逻辑
    mouse.position = (404, 415)
    mouse.click(Button.left)
    keyboard.type(list_of_lists[number-1][0])
    mouse.position = (404, 465)
    mouse.click(Button.left)
    keyboard.type(list_of_lists[number-1][1])
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)

# 启动全局监听
with Listener(on_press=on_press) as listener:
    listener.join()
auto-py-to-exe打包异常解决

按以下步骤操作即可解决打包后的运行问题:

  • 优先使用上面修改后的全pynput代码打包,避免keyboard模块的权限兼容问题
  • 打开auto-py-to-exe后,先选择你的脚本文件
  • 进入「附加文件」菜单,添加你的parolochetach.txt文件,目标路径填写.(代表和exe同目录)
  • 进入「高级」菜单,在hidden-import栏添加以下内容(Windows系统):
    pynput.keyboard._win32
    pynput.mouse._win32
    
    如果你是Mac系统添加pynput.keyboard._darwin、pynput.mouse._darwin,Linux系统添加pynput.keyboard._xorg、pynput.mouse._xorg
  • 进入「设置」菜单,勾选「请求管理员权限」,全局按键监听需要管理员权限才能正常运行
  • 打包模式先选「单目录」,打包完成后直接运行目录里的exe测试,没问题再切换为单exe模式打包
  • 如果打包后还是提示缺模块,把报错的模块名也加到hidden-import里即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:27:01