Python 2.7 serial.serialutil.SerialException:无法打开端口

Python 2.7 serial.serialutil.SerialException:无法打开端口,python-2.7,pyserial,Python 2.7,Pyserial,我尝试在Win8上用pyserial与Python和Arduino通信 但它有这样的错误 Traceback (most recent call last): File "C:\Users\Fon\Desktop\x.py", line 7, in <module> ser.open() # open serial port File "C:\Python27\lib\site-packages\serial\serialwi

我尝试在Win8上用pyserial与Python和Arduino通信 但它有这样的错误

Traceback (most recent call last):
  File "C:\Users\Fon\Desktop\x.py", line 7, in <module>
    ser.open()                      # open serial port
  File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 66, in open
    raise SerialException("could not open port %r: %r" % (self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'COM4': WindowsError(2, 'The system cannot     find the file specified.')
在这段代码中,我试图打开端口“COM4”,我已经检查了这个端口是否可用,并且我已经尝试了另一个端口,但没有任何端口工作。
我用错端口了吗?还是什么;(

该端口是否存在?可能已经连接到它了。如果您以前运行过该程序,但串行端口未正确关闭,则旧程序可能仍然连接到它。如果它不存在,则必须使用程序创建虚拟串行端口。@JustinEngel execute me,如何检查该端口是否存在?或如何创建虚拟串行端口?如果您在windows上,设备管理器的“端口”部分将告诉您计算机上有哪些COM端口。如果您要创建虚拟串行端口,则有一个名为virtual serial port emulator@JustinEngel的应用程序。我是否需要在python和arduino(COM1)中使用相同的端口?它无法相互通信。如果您试图在COM1上与arduino通信,那么您需要python连接到COM1。我猜是其他东西连接到了同一个串行端口COM1。它可能是您用来编程arduino的应用程序,也可能是未正确关闭的旧程序。您可以尝试查看t向manager请求仍在运行的python.exe,或者尝试安全地断开arduino并重新连接。除此之外,我不确定如何关闭未正确清理的串行端口连接。请确保python代码具有ser.close()
import serial

ser = serial.Serial()
ser.port = 3               # serial port
ser.baudrate = 115200           # set baudrate 115200
ser.timeout = 60                # timeout 60 second
ser.open()                      # open serial port

while True:
    ser.write('l')              # send '1' to port to get light
    light = ser.read(4) 
    print "light", light