【发布时间】:2021-03-29 20:05:38
【问题描述】:
正在开发用于控制热敏打印机的应用程序。该打印机连接到树莓派 4 的 USB 端口。编程语言为 Python,操作系统为 Linux。正在从 Docker 容器执行控制热敏打印机的脚本。
打印机配置错误,需要解决。以下是Dockerfile、Requirements和Error的脚本:
Dockerfile:
FROM python:3.8.3-alpine
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install psycopg2 dependencies
RUN apk update \
&& apk add postgresql-dev gcc python3-dev musl-dev
RUN apk add libjpeg-turbo-dev freetype-dev libpng-dev libusb
RUN apk add --update --no-cache curl jq py3-configobj py3-pip py3-setuptools python3 python3-dev
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# copy entrypoint.sh
COPY ./entrypoint.sh .
# copy project
COPY . .
# run entrypoint.sh
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]
要求:
Django==3.0.7
python-escpos==2.2.0
gunicorn==20.0.4
requests==2.24.0
psycopg2==2.8.5
psycopg2-binary==2.8.5
djangorestframework==3.11.0
django-cors-headers==3.4.0
pyusb==1.1.0
libusb1==1.9.1
libusb==1.0.23b7
pytz
escpos==1.8
错误:
print paper
Traceback (most recent call last):
File "services/receipt_content.py", line 123, in <module>
a = ReceiptHeader("165465481654654", "app/media/loto.png", None)
File "services/receipt_content.py", line 29, in _init_
PrintPaper._init_(self)
File "services/receipt_content.py", line 10, in _init_
self.printer = Usb(0x0fef, 0x811e)
File "/usr/local/lib/python3.8/site-packages/escpos/printer.py", line 53, in _init_
self.open(usb_args)
File "/usr/local/lib/python3.8/site-packages/escpos/printer.py", line 60, in open
self.device = usb.core.find(**usb_args)
File "/usr/local/lib/python3.8/site-packages/usb/core.py", line 1297, in find
raise NoBackendError('No backend available')
usb.core.NoBackendError: No backend available
【问题讨论】:
标签: python linux docker printing raspberry-pi4