Python脚本不起作用,但shell起作用:串行读取

Python脚本不起作用,但shell起作用:串行读取,python,serial-port,raspberry-pi,Python,Serial Port,Raspberry Pi,我正在从串行端口读取数据,并使用Shell/IDE成功查看数据。但是,当我在CLI的脚本中使用相同的命令时,响应将挂起,直到我使用键盘中断为止。我已经尝试注释了脚本的各个部分,并将问题缩小到以下行:ser.readline()。 解决这个问题的任何帮助都是非常有益的。提前谢谢 #!/usr/bin/python print("start") import serial import time ser=serial.Serial('/dev/ttyACM0', 9600) time.sleep(2

我正在从串行端口读取数据,并使用Shell/IDE成功查看数据。但是,当我在CLI的脚本中使用相同的命令时,响应将挂起,直到我使用键盘中断为止。我已经尝试注释了脚本的各个部分,并将问题缩小到以下行:ser.readline()。 解决这个问题的任何帮助都是非常有益的。提前谢谢

#!/usr/bin/python
print("start")
import serial
import time
ser=serial.Serial('/dev/ttyACM0', 9600)
time.sleep(2.0)
ser.readline()
print("end")

此代码引发一个
缩进错误
。由于这种行为可能是由缩进问题引起的(如果
if
之外,而
,那么您将永远在
读线
周围循环,并且永远不会对结果做任何事情),因此我们必须准确地看到您的代码。另外,您所说的“shell”和“CLI”是什么意思?通常,它们指的是在shell中运行Python(如bash或cmd.exe)在终端(如gnome终端或…嗯…cmd.exe的另一半)的同一件事。具体什么情况有效,什么情况不有效?您很可能需要在
EOF
Ctrl-d
在命令行)上打破while循环,非常感谢您的评论。缩进错误是因为我粘贴到堆栈溢出的方式。我把它正确地缩进了。当我从CLI执行时,甚至这个脚本也会挂起:#/usr/bin/python print(“start”)导入串行导入时间ser=serial.serial('/dev/ttyACM0',9600)time.sleep(2.0)ser.readline()问题已解决:必须重新安装和更新pyserial。