正在开发一种控制热敏打印机的应用程序。该打印机连接到Raspberry Pi 4的USB端口。编程语言为Python,操作系统为Linux。正在从Docker容器执行控制热敏打印机的脚本。
打印机配置出现错误,需要解决此问题。以下是Dockerfile的脚本、要求和错误:
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发布于 2020-12-19 23:30:08
为了在docker container中使用USB设备,您必须通过--device选项挂载设备文件或以--privileged身份运行container。Raspberry Pi可能无论如何都不需要注意安全性。
https://stackoverflow.com/questions/65369398
复制相似问题