我当前正在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"
设置信息:
有什么想法吗?