I have been trying to make serial work with Python and Pi3, however so far I have been unsuccessful.

When running the Python script, I am getting an error "serial.serialutil.SerialException: Port is already open."

I have already tried all tips in another post that should solve issues with Pi3 and the Bluetooth port. (How do I make serial work on the Raspberry Pi3)

My python script is the following:

import serial
ser = serial.Serial('/dev/serial0', 9600, timeout=1)

    while 1:
        response = ser.readline()
        print response
except KeyboardInterrupt:

Any suggestions?

  • Er, yes. The error will show the line in error. Remove it.
    – joan
    Jan 2, 2017 at 17:17
  • @joan, the line which throws the error is line 3: ser.open()
    – Martin
    Jan 2, 2017 at 17:21
  • 1
    That's the line you need to remove.
    – joan
    Jan 2, 2017 at 17:27
  • What happens if you run lsof?
    – Bex
    Jan 2, 2017 at 18:42
  • 2
    @Bex serial.Serial() opens the device if the device is specified. The ser.open() call is trying to re-open an already opened device.
    – joan
    Jan 2, 2017 at 18:50

1 Answer 1


The line ser = serial.Serial('/dev/serial0', 9600, timeout=1) opens the device automatically. When you try to open the device that is already open, python raises an error. Just take out ser.open() and it will work.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.