Ihre libpq, die von psycopg2 verwendet wird, erwartet, dass sich der Postgres-Socket in /var/run/postgresql/ befindet aber wenn Sie Postgres von der Quelle installieren, ist es standardmäßig in /tmp/ .
Prüfen Sie, ob es eine Datei /tmp/.s.PGSQL.5432 gibt statt /var/run/postgresql/.s.PGSQL.5432 . Versuchen Sie:
conn=psycopg2.connect(
database="mydb",
user="postgres",
host="/tmp/",
password="123"
)