Errrno 32 Ошибка канала, escpos python2
Мне нужно проверить принтер 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 ответ
Такой преобразователь USB-Parallel-конвертер должен быть установлен вашей системой в файловую систему (я полагаю, что вы находитесь на *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")