Vaše knihovna libpq, kterou používá psycopg2, očekává, že socket Postgres bude v /var/run/postgresql/ ale když nainstalujete Postgres ze zdroje, je to ve výchozím nastavení v /tmp/ .
Zkontrolujte, zda existuje soubor /tmp/.s.PGSQL.5432 místo /var/run/postgresql/.s.PGSQL.5432 . Zkuste:
conn=psycopg2.connect(
database="mydb",
user="postgres",
host="/tmp/",
password="123"
)