求大大帮忙
python3.64版本
rabird.winio ←地址
简单的官方模块示例,本机打包运行没问题,
在其他机子就报错
示例代码:
import rabird.winio
import time
import atexit
# KeyBoard Commands
# Command port
KBC_KEY_CMD = 0x64
# Data port
KBC_KEY_DATA = 0x60
__winio = None
def __get_winio():
global __winio
if __winio is None:
__winio = rabird.winio.WinIO()
def __clear_winio():
global __winio
__winio = None
atexit.register(__clear_winio)
return __winio
def wait_for_buffer_empty():
'''
Wait keyboard buffer empty
'''
winio = __get_winio()
dwRegVal = 0x02
while (dwRegVal & 0x02):
dwRegVal = winio.get_port_byte(KBC_KEY_CMD)
def key_down(scancode):
winio = __get_winio()
wait_for_buffer_empty()
winio.set_port_byte(KBC_KEY_CMD, 0xd2)
wait_for_buffer_empty()
winio.set_port_byte(KBC_KEY_DATA, scancode)
def key_up(scancode):
winio = __get_winio()
wait_for_buffer_empty()
winio.set_port_byte( KBC_KEY_CMD, 0xd2)
wait_for_buffer_empty()
winio.set_port_byte( KBC_KEY_DATA, scancode | 0x80)
def key_press(scancode, press_time = 0.2):
key_down( scancode )
time.sleep( press_time )
key_up( scancode )
# Press 'A' key
Scancodes references : Keyboard scancodes
key_press(0x1E)
老哥,出错原因虽然未知,但是有一种方法可以避免此类因环境部署产生的不一致问题 --** 容器技术**, 这是一种及其适合软件开发,部署,运维的技术。
你可以使用一个python容器,在其中完成你的项目,然后打包此容器为新的容器镜像。
只要是可以运行容器的主机,你打包前OK, 在任何机器上都OK,这种问题根本不会出现,也就无需调试找原因了。
目前很受欢迎的容器之一**docker**,官网地址是https://www.docker.com/
如果选择使用容器,有什么问题,可以再讨论