title: pyserial error - cannot open port
body: <p>I have seen simple code in stackoverflow using pyserial in USB ports with Python 3.3 but I can't get this to work on my new installation of pyserial 2.7 [in Windows 7, 64 bit, with 3 USB ports].  Installation of pyserial went smoothly, I can import without error and methods are recognized in the Pyscripter IDE which boosts confidence in a good installation, however:</p>
  
  <p>The code stripped down to its error producing essentials is:</p>
  
  <pre><code>import serial
  def main():
    ser = serial.Serial(port='COM2')
    ser.close()
  
  if __name__ == '__main__':
     main
  </code></pre>
  
  <p>From this I receive a dialog box with the error "SerialException: could not open port 'COM2': FileNotFoundError(2,'The system cannot find the file specified.',None,2)"</p>
  
  <p>The Traceback states:</p>
  
  <pre><code>*** Remote Interpreter Reinitialized  ***
  &gt;&gt;&gt;
  Traceback (most recent call last):
    File "&lt;string&gt;", line 420, in run_nodebug
    File "C:\Python33\Lib\site-packages\scanport2.py", line 19, in &lt;module&gt;
  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)
  </code></pre>
  
  <p>And the code segment in the imported module which raises the SerialException is:</p>
  
  <pre><code>    # 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:]) &gt; 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()))
  </code></pre>
  
  <p>I do have an active device connected to COM2 as identified in the Windows device manager.  I also have tried scanning all the ports, but the code stops on the first use of serial.Serial</p>
  
  <p>This appears that something may be going on with win32?</p>
  
  <p>I am a newbie for interfacing Python with hardware. </p>