无法检测到 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=]
我试图在能够运行 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=]