admin管理员组

文章数量:1607045

一、安装环境

1、下载安装32位 python 3.4.4 ,新版本不支持Win XP系统了,官网下载地址 https://www.python/downloads/windows/(https://www.python/downloads/windows/
坑:因为要使用 tkinter,所有需要下载32位安装版本,安装过程会默认勾选tk,下载无安装版本没有tk,pip安装又安装不上

2、下载安装32位pywin32,打包成exe需要pywin32这个包,下载地址 https://sourceforge/projects/pywin32/files/pywin32/
需要下载和python 版本对应的pywin32版本:

下在pywin32后,点击安装,会自动检测python所在位置,一直下一步即可,然后cmd进入python3.4目录,运行命令:./Scripts/pywin32_postinstall.py -install

3、pip安装 pyinstaller3.2.1,新版本不支持32位,pip install pyinstaller==3.2.1 -i https://mirrors.aliyun/pypi/simple

4、pip安装 pynput 1.6.8, 新版本不支持32位,打包成exe运行会报错:ImportError ,所以要换个早期版本, pip install pynput==1.6.8 -i https://mirrors.aliyun/pypi/simple

5、cmd 运行 pip list , 查看是否安装成功

二、编写代码

由于要使用 tkinter 和 pynut 协同工作,所以使用 pynut 监听键盘非阻塞流方式


import tkinter as tk
from pynput import keyboard

root = tk.Tk()
root.geometry('5x5+200+200')
b1=tk.Canvas(root, bg='black',height=10,width=10)
b1.place(x=-5,y=-5)



def on_press(myKey):
    print("按下了: %s"%myKey)

def on_release(mykey):
    print("按键抬起了")

def start_keyboard_listen():
    listener = keyboard.Listener(on_press=on_press, on_release=on_release)
    listener.start()
    print("开启监听")
    return listener

listener = start_keyboard_listen()

def shutdown():
    listener.stop()
    root.destroy()

root.mainloop()

三、开始打包

运行命令 pyinstaller -F wendao.py


在dist文件夹下生成exe

四、Win XP 下运行

拷贝到Win XP 系统上运行

坑: pynut 在Win XP 上不生效,参考 github 官网处理 修改pynput下代码 https://github/moses-palmer/pynput/pull/508/commits/563e92b906bd03d1c7d92f15a533754cab6bdc1a

Fixed a small issue that mouse event didn’t work on Windows XP #508

本文标签: 系统界面键盘程序pyinstaller