首页 > 解决方案 > 使用 Python、Linux、Raspberry Pi 和 Docker 配置热敏打印机的问题

问题描述

正在开发用于控制热敏打印机的应用程序。该打印机连接到树莓派 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

标签: pythonlinuxdockerprintingraspberry-pi4

解决方案


为了在 docker 容器中使用 USB 设备,您必须通过--device选项挂载设备文件或将容器运行为--privileged. Raspberry Pi 可能无论如何都不需要注意安全性。


推荐阅读