【问题标题】:libusb, pyusb and python-escpos on a windows machineWindows 机器上的 libusb、pyusb 和 python-escpos
【发布时间】:2019-04-15 03:11:30
【问题描述】:

我正在尝试在 Windows 7(64 位)上使用 Epson POS TM-82 打印机。我已经安装了打印机的驱动程序。我安装了 python 2.7.15(64 位)。要使用 python,我正在使用这个包,python-escpos

在我安装了 python-escpos 并尝试以documented 运行后,我收到一个错误:

from escpos.printer import Usb
Usb(0x04b8, 0x0e11)

usb.core.NoBackendError:没有可用的后端

  1. 经过一番挖掘,我找到了这个wiki,据此我需要使用最新版本的 Zadig,这是一个适用于 WinUSB、libusb-win32 和 libusbK 的自动驱动安装程序 GUI 应用程序。

    所以,我下载了 Zadig;从下拉菜单中选择TM-82,选择WinUSB更换驱动,驱动安装成功。

    之后,我再次从上面运行了相同的 python-escpos 记录命令,并得到了相同的错误:

    usb.core.NoBackendError:没有可用的后端

  2. 经过更多研究,我在 stackoverflow 上找到了this answer。所以按照答案,我下载了libusb zip文件,并将libusb-1.0.20_2\MS64\dll\libusb-1.0.lib复制到我的C:\Windows\System32。最后将libusb-1.0.20_2\MS64\static\libusb-1.0.lib复制到C:\Python27\libs\

    在那之后,我再次从上面运行了相同的 python-escpos 记录命令,这次我得到了一个不同的错误:

    NotImplementedError:此平台不支持或未实现操作

我在这里缺少什么?请你帮助我好吗。谢谢。

【问题讨论】:

    标签: python libusb pyusb escpos escp


    【解决方案1】:

    在这里回答我自己的问题。所以,事实证明,问题出在 python-escpos 库上。我不得不从printer.py(该库的python模块)中删除以下内容:

    try:
        check_driver = self.device.is_kernel_driver_active(0)
    except NotImplementedError:
        pass
    if check_driver is None or check_driver:
        try:
            self.device.detach_kernel_driver(0)
        except usb.core.USBError as e:
            if check_driver is not None:
                print("Could not detatch kernel driver: {0}".format(str(e)))
    

    详情可以在我的博客Medium上找到。

    【讨论】:

    • 仍然出现此错误NotImplementedError: Operation not supported or unimplemented on this platform
    猜你喜欢
    • 2021-07-06
    • 2016-03-02
    • 2014-07-26
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2020-01-27
    • 2012-06-28
    • 1970-01-01
    相关资源
    最近更新 更多