pyOBD-II (a.k.a. "pyobd2") is a Python library for communicating with OBD-II vehicles. Its goal is to make writing programs for vehicle diagnostics and monitoring vehicle data as easy as possible. Relies on pySerial to communicate with ELM scanners.
Not only does it fail the basic functionality test, but it's missing files. Any option change will print errors about missing files. Manually modifying the executable to connect to the proper serial device (because options are just dummy buttons that do nothing) doesn't help at all. I wish there was a working open-source OBD2 software. This is the furthest from.
pyobd2 works perfectly.