docker容器中没有python设备连接

时间:2018-10-01 14:57:31

标签: python docker docker-compose pyserial

我当前正在ubuntu机器上的docker容器内运行python脚本。该脚本使用pyserial处理来自串行设备的输入。 每次启动脚本时,我都没有与设备的真正连接,它总是会引发以下错误:

serial.serialutil.SerialException: [Errno 16] could not open port /dev/ttyACM3: [Errno 16] Device or resource busy: '/dev/ttyACM3'

注意:该设备未在其他任何过程中使用,因此应该没有理由抛出此错误。

while True:
    try:
        self.serialSource = serial.Serial(self.inputDevice)
        self.serialSource.timeout = 0.5
        break
    except serial.serialutil.SerialException as e:
        print(str(e))
        time.sleep(1)
        continue

如果我直接在主机上运行脚本,那么它似乎可以正常工作。 我认为docker配置可能有问题。

我只是使用docker-compose将设备连接到容器,如下所示:

devices:
  - "/dev/ttyACM3:/dev/ttyACM3"

设置信息:

  • 主机操作系统:ubuntu 18.04
  • docker:18.06.1-ce,构建e68fc7a
  • docker-compose:1.22.0,构建f46880fe
  • docker镜像:“ python:3.7.0”
  • pyserial:3.4

有什么想法吗?

0 个答案:

没有答案