PySerial could not open port COM4: [Error 5] Access is denied - please help

Adam adam at no_thanks.com
Wed Jun 27 17:48:44 EDT 2012


"Grant Edwards" <invalid at invalid.invalid> wrote in message 
news:jsftah$bb5$1 at reader1.panix.com...
> On 2012-06-27, Adam <adam at no_thanks.com> wrote:
>
>> The Python script needed a call to ser.close() before ser.open() in
>> order to work.
>
> IOW, the port opened OK, but when you tried to open it a second time
> without closing it first, _that's_ when the .open() call failed.
>
> That's a restriction built in to Win32.  You can't open a serial port
> that's already open.  [Linux doesn't have that restriction.]
>
> Why do you need to open it a second time?
>
> -- 
> Grant Edwards               grant.b.edwards        Yow! Send your 
> questions to
>                                  at               ``ASK ZIPPY'', Box 
> 40474,
>                              gmail.com            San Francisco, CA 94140,
>                                                   USA


As far as I can tell, the wireless hardware connected to the USB-to-serial 
converter is
receiving data (which may have the serial port open?).  I can see the data 
being
received in TeraTerm (using COM4).  After closing TeraTerm,
I start up the Python script and get the following error message ...

C:\Wattcher>python wattcher.py
Traceback (most recent call last):
  File "wattcher.py", line 56, in <module>
    ser.open()
  File "C:\Python25\Lib\site-packages\serial\serialwin32.py", line 56, in
open
    raise SerialException("could not open port %s: %s" % (self.portstr,
ctypes.WinError()))
serial.serialutil.SerialException: could not open port COM4: [Error 5]
Access is denied.


Searching for similar encounters of this error message,
some people said that calling ser.close() before ser.open()
solved the problem.  And, it worked for me as well.

Is this considered a chicken & egg situation?





More information about the Python-list mailing list