无法检测到 Python 的任何串行端口

Cannot detect any serial ports with Python

我试图在能够运行 Python 脚本的其余部分之前找到设备连接到的正确 com 端口。

我试过用这个:

    import serial.tools.list_ports
    ports = list(serial.tools.list_ports.comports())
    for p in ports:
        print p

还有这个:

    import wmi
    c = wmi.WMI()
    wql = "Select * From Win32_SerialPort"
    for item in c.query(wql):
        print item

还有这个:

    def serial_ports():

    if sys.platform.startswith('win'):
        ports = ['COM%s' % (i + 1) for i in range(256)]
        print ports 
    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

所有这些方法都是我从其他堆栈交换帖子中找到的;但是,对于这两个功能,当我尝试打印 com 端口列表时,我得到一个空白列表?任何 help/insights 将不胜感激 提前致谢!

像这样:

import serial,os,sys,glob


def serial_ports():

    if sys.platform.startswith('win'):
        ports = ['COM%s' % (i + 1) for i in range(256)]
        print ports 
    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 = []
    print ports
    for port in ports:
        try:
            s = serial.Serial(port,9600)
            s.close()
            result.append(port)
        except (OSError, serial.SerialException):
            pass
    return result

print serial_ports()

永远不能打开任何没有速度(时钟)定义的 serial 端口。

在 linux 上:run as root,普通用户无法访问 /dev(不要更改权限,因为 name_space 动态创建。坏主意!)。 =14=]