我正在尝试在windows 7(64位(上使用Epson POS TM-82打印机。我已经安装了打印机的驱动程序。我安装了python 2.7.15(64位(。为了使用python,我使用了这个包python-escpos。
在我安装了python-escpos并尝试按照文档运行后,我得到了一个错误:
from escpos.printer import Usb
Usb(0x04b8, 0x0e11)
usb.core.NoBackendError:没有可用的后端
经过进一步的挖掘,我找到了这个wiki,根据这个,我需要使用Zadig的最新版本,这是一个适用于WinUSB、libusb-win32和libusbK的自动驱动程序安装程序GUI应用程序。
所以,我下载了Zadig;从下拉菜单中选择TM-82,选择WinUSB替换驱动程序并成功安装驱动程序。
在那之后,我再次从上面运行了相同的python escpos文档命令,并得到了相同的错误:
usb.core.NoBackendError:没有可用的后端
经过更多的研究,我在stackoverflow上找到了这个答案。因此,根据答案,我下载了libusb-zip文件,并将
libusb-1.0.20_2MS64dlllibusb-1.0.lib
复制到我的C:WindowsSystem32
。并最终将libusb-1.0.20_2MS64staticlibusb-1.0.lib
复制到C:Python27libs
在那之后,我再次从上面运行了相同的python escpos文档命令,这次我得到了一个不同的错误:
NotImplementedError:此平台上不支持或未实现操作
我这里缺少什么?你能帮帮我吗?谢谢。
在这里回答我自己的问题。事实证明,问题出在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上找到。