【问题标题】:Problem in Thermal Printer Configuration with Python, Linux, Raspberry Pi and Docker使用 Python、Linux、Raspberry Pi 和 Docker 配置热敏打印机的问题
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      • 2017-06-21
      • 2013-12-03
      • 1970-01-01
      • 2016-05-05
      • 2012-10-05
      相关资源
      最近更新 更多