aoxn 2018-05-10 13:27 采纳率: 100%
浏览 5010
已采纳

pyinstaller打包后,在别的机子运行出错?

求大大帮忙

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) 
  • 写回答

1条回答 默认 最新

  • ZhihengTao 2018-05-10 14:52
    关注

    老哥,出错原因虽然未知,但是有一种方法可以避免此类因环境部署产生的不一致问题 --** 容器技术**, 这是一种及其适合软件开发,部署,运维的技术。

    你可以使用一个python容器,在其中完成你的项目,然后打包此容器为新的容器镜像。
    只要是可以运行容器的主机,你打包前OK, 在任何机器上都OK,这种问题根本不会出现,也就无需调试找原因了。

    目前很受欢迎的容器之一**docker**,官网地址是https://www.docker.com/

    如果选择使用容器,有什么问题,可以再讨论

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元