pyserial erreur - impossible d'ouvrir le port

J'ai vu un code simple en stackoverflow à l'aide de pyserial ports USB avec Python 3.3, mais je ne peux pas obtenir que cela fonctionne sur ma nouvelle installation de pyserial 2.7 [dans Windows 7, 64 bits, avec 3 ports USB]. Installation de pyserial s'est bien passé, je peux importer sans erreur et méthodes sont reconnues dans le Pyscripter IDE qui renforce la confiance en une bonne installation, cependant:

Le code dépouillé de son erreur en produisant essentials est:

import serial
def main():
  ser = serial.Serial(port='COM2')
  ser.close()

if __name__ == '__main__':
   main

À partir de ce que je reçois une boîte de dialogue avec le message d'erreur "SerialException: impossible d'ouvrir le port COM2': FileNotFoundError(2, " Le système ne peut pas trouver le fichier spécifié.',Aucun,2)"

Le Traceback états:

*** Remote Interpreter Reinitialized  ***
>>>
Traceback (most recent call last):
  File "<string>", line 420, in run_nodebug
  File "C:\Python33\Lib\site-packages\scanport2.py", line 19, in <module>
main()
  File "C:\Python33\Lib\site-packages\scanport2.py", line 15, in main
ser = serial.Serial(port='COM2')
  File "C:\Python33\Lib\site-packages\serial\serialwin32.py", line 38, in __init__
SerialBase.__init__(self, *args, **kwargs)
  File "C:\Python33\Lib\site-packages\serial\serialutil.py", line 282, in __init__
self.open()
  File "C:\Python33\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 'COM2': FileNotFoundError(2, 'The system cannot find the file specified.', None, 2)

Et le segment de code dans le module importé, ce qui soulève le SerialException est:

    # the "\\.\COMx" format is required for devices other than COM1-COM8
    # not all versions of windows seem to support this properly
    # so that the first few ports are used with the DOS device name
    port = self.portstr
    try:
        if port.upper().startswith('COM') and int(port[3:]) > 8:
            port = '\\\\.\\' + port
    except ValueError:
        # for like COMnotanumber
        pass
    self.hComPort = win32.CreateFile(port,
           win32.GENERIC_READ | win32.GENERIC_WRITE,
           0, # exclusive access
           None, # no security
           win32.OPEN_EXISTING,
           win32.FILE_ATTRIBUTE_NORMAL | win32.FILE_FLAG_OVERLAPPED,
           0)
    if self.hComPort == win32.INVALID_HANDLE_VALUE:
        self.hComPort = None    # 'cause __del__ is called anyway
        raise SerialException("could not open port %r: %r" % (self.portstr, ctypes.WinError()))

J'ai un actif de dispositif connecté à COM2 identifiés dans le gestionnaire de périphériques de Windows. J'ai aussi essayé l'analyse de tous les ports, mais le code s'arrête sur la première utilisation de la série.Série

Cela semble que quelque chose ne va pas avec win32?

Je suis un newbie pour l'interfaçage Python avec le matériel.

Je ne suis pas familier avec Windows privilèges, mais avez-vous essayé de l'exécution de votre code en tant qu'administrateur?
J'ai trouvé que l'utilisation de la \\.\COMx format a été nécessaire pour le port COM8
faire un "pip freeze" à l'invite de commande pour chaque système. si vous avez les différentes versions de pyserial, qui peuvent être la cause de racine. Le port com références changé à partir de 2.x à 3.x (a integer, maintenant string), c'est à dire, si votre nouvelle installation a pyserial 2.x, vous aurez besoin d'appeler "ser = numéro de série.Série(port=2)"

OriginalL'auteur user3153016 | 2014-01-02