问题描述
我使用pip install pyserial
安装了pyserial,现在我试图运行以下代码以列出台式机上的所有命令。如果重要的话,我正在使用PyCharm。
import serial.tools.list_ports
def serial_ports():
print(list(serial.tools.list_ports.comports()))
if __name__ == '__main__':
serial_ports()
现在,它只是打印出[]
,而没有其他内容。我什至不确定我的计算机是否有故障,因为当我检查my device manager时,没有看到任何称为“端口(COM和LPT)”的信息。任何帮助表示赞赏。
解决方法
尝试一下:更新
import sys
import glob
import serial
def serial_ports():
""" Lists serial port names
:raises EnvironmentError:
On unsupported or unknown platforms
:returns:
A list of the serial ports available on the system
"""
if sys.platform.startswith('win'):
ports = ['COM%s' % (i + 1) for i in range(256)]
elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
# this excludes your current terminal "/dev/tty"
ports = glob.glob('/dev/tty[A-Za-z]*')
elif sys.platform.startswith('darwin'):
ports = glob.glob('/dev/tty.*')
else:
raise EnvironmentError('Unsupported platform')
result = []
for port in ports:
try:
s = serial.Serial(port)
s.close()
result.append(port)
except (OSError,serial.SerialException):
pass
return result
if __name__ == '__main__':
print(serial_ports())