我正在尝试使用pyserial连接到makerbot 3d打印机。连接代码中给我带来麻烦的部分是:

import serial
file = serial.Serial('/dev/ttyACM1', 115200, timeout=1)

当我按原样运行时(如python),我得到:
[Errno 13] Permission denied: '/dev/ttyACM1'

所以我用超级用户privelleges(sudo python)运行它,我得到了这个:
serial.serialutil.SerialException: pid 3516 could not open port /var/lock/LCK..ttyACM1: locked by PID 1054

所以我猜设备被什么东西锁上了。但我怎么才能知道是什么锁着它,怎么才能阻止它呢?

最佳答案

我会尝试:

lsof /dev/ttyACM1

您可能需要抓取lsof,因为它在默认情况下可能不会安装在您的dist上。
根据LSOF手册页:
lsof在其标准输出文件中列出有关进程打开的文件的信息
[…]打开的文件可以是常规文件、目录、块特殊文件、字符特殊文件、正在执行的文本引用、库、流或网络文件(Internet套接字、NFS文件或Unix域套接字)。可以通过路径选择特定文件或文件系统中的所有文件。

07-26 09:29