Errrno 32管道错误,escpos python2

时间:2017-10-07 23:10:53

标签: python python-2.7 escpos

我需要测试一台Epson POS打印机TM-U220PD。 我把它通过并行转换器连接到我的笔记本电脑。 它已完全安装,但是当我使用python escpos测试它时显示以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/escpos/escpos.py", line 437, in text
    self._raw(txt.encode())
  File "/usr/local/lib/python2.7/dist-packages/escpos/printer.py", line 85, in _raw
    self.device.write(self.out_ep, msg, self.timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 948, in write
    self.__get_timeout(timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 824, in bulk_write
    timeout)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 920, in __write
    _check(retval)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 32] Pipe error

这是用于测试的代码:

>>> from escpos.printer import Usb
>>> p = Usb(0x067b, 0x2305)
>>> p.open()
>>> p.text()

1 个答案:

答案 0 :(得分:0)

这样的USB到并行转换器应该由你的系统安装到文件系统中(我假设你从跟踪判断你是在* nix上)。 通常这类似于/dev/usb/lp0

首次调试时,您可以尝试写入此“文件”:

echo "Test\n" > /dev/usb/lp0

如果这样可行,您应该可以使用以下方式成功打印:

from escpos.printer import File
p = File(devfile='/dev/usb/lp0')
p.text("some text\n")