Pyserial: файл не найден при открытии порта - PullRequest
0 голосов
/ 19 сентября 2019

Я очень новичок в работе с оборудованием на Python.Я недавно установил pyserial для связи с лабораторным устройством и написал некоторый предварительный код, чтобы убедиться, что оно установлено правильно:

import serial
import serial.tools.list_ports

for n in serial.tools.list_ports.comports():
    print(n)

ser = serial.Serial("COM4")
ser.close()

Однако, это немедленно вызвало ошибку, и порт не смог открыться.

COM4 - USB to Serial Cable (COM4)
Traceback (most recent call last):

  File "<ipython-input-8-d5870cbfac06>", line 1, in <module>
    runfile('C:/Users/zach/Downloads/Research Code/CPC_read.py', wdir='C:/Users/zach/Downloads/Research Code')

  File "C:\Users\zach\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\Users\zach\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 95, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)

  File "C:/Users/zach/Downloads/Research Code/CPC_read.py", line 8, in <module>
    ser = serial.Serial("COM4")

  File "C:\Users\zach\Anaconda2\lib\site-packages\serial\serialwin32.py", line 31, in __init__
    super(Serial, self).__init__(*args, **kwargs)

  File "C:\Users\zach\Anaconda2\lib\site-packages\serial\serialutil.py", line 240, in __init__
    self.open()

  File "C:\Users\zach\Anaconda2\lib\site-packages\serial\serialwin32.py", line 62, in open
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))

SerialException: could not open port 'COM4': WindowsError(2, 'The system cannot find the file specified.')

В верхней части pyserial распознает COM4 как доступный порт, но он все еще не может подключиться.

Большая часть информации, которую я мог найти по этой ошибке с pyserial, касается людей, использующих неправильный синтаксис дляболее новая / старая версия pyserial, но я попробовал несколько версий Anaconda (2 и 3) и pyserial (2.7 и 3.4), чтобы попытаться исправить любые проблемы совместимости, а также установить другую версию python.Этот тест проводится на pyserial 3.4 и Anaconda2 / Spyder.

Какой файл pyserial специально пытается найти?Возвращаясь к serialwin32, похоже, он каким-то образом генерирует неверный дескриптор порта.

...