Win 10 系统下 pyinstaller 打包 Win XP 系统 32位可运行程序,使用 监听键盘包 pynput 和 界面包tkinter,踩坑无数

一、安装环境

1、下载安装32位 python 3.4.4 ,新版本不支持Win XP系统了,官网下载地址 https://www.python.org/downloads/windows/(https://www.python.org/downloads/windows/
坑:因为要使用 tkinter,所有需要下载32位安装版本,安装过程会默认勾选tk,下载无安装版本没有tk,pip安装又安装不上
在这里插入图片描述
2、下载安装32位pywin32,打包成exe需要pywin32这个包,下载地址 https://sourceforge.net/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.com/pypi/simple

4、pip安装 pynput 1.6.8, 新版本不支持32位,打包成exe运行会报错:ImportError ,所以要换个早期版本, pip install pynput==1.6.8 -i https://mirrors.aliyun.com/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.com/moses-palmer/pynput/pull/508/commits/563e92b906bd03d1c7d92f15a533754cab6bdc1a

Fixed a small issue that mouse event didn’t work on Windows XP #508
在这里插入图片描述

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值