Dado que ya tiene un DSN funcional definido en odbc.ini, puede utilizarlo:
con = pyodbc.connect("DSN=my-connector")
Además, para que conste, ese espacio en blanco adicional en su cadena de conexión puede haber confundido el problema porque funcionó bien para mí, al menos en Python 2.7
import pyodbc
conn_str = (
"DRIVER={PostgreSQL Unicode};"
"DATABASE=postgres;"
"UID=postgres;"
"PWD=whatever;"
"SERVER=localhost;"
"PORT=5432;"
)
conn = pyodbc.connect(conn_str)
crsr = conn.execute("SELECT 123 AS n")
row = crsr.fetchone()
print(row)
crsr.close()
conn.close()