Non lo importi nel tuo Python programma. Il punto di .pgpass è che si tratta di un file normale soggetto ai permessi dei file del sistema e a libpq driver quali librerie come psycopg2 usa per connetterti a Postgres cercherà in questo file la password invece di richiedere che la password sia nel codice sorgente o richiederla.
Inoltre, questo non è un file lato server, ma uno lato client. Quindi, su una scatola *nix, avresti un ~/.pgpass file contenente le credenziali per le varie connessioni che vuoi poter effettuare.
Modifica in risposta al commento di OP:
Due cose principali devono accadere per psycopg2 per autenticarsi correttamente tramite .pgpass :
- Non non specificare una password nella stringa passata a
psycopg2.connect - Assicurati che la voce corretta sia aggiunta al
.pgpassfile per l'utente che si connetterà tramite psycopg2 .
Ad esempio, per farlo funzionare per tutti i database per un particolare utente su localhost porta 5432 , dovresti aggiungere la seguente riga al .pgpass di quell'utente file:
localhost:5432:*:<username>:<password>
E poi il connect la chiamata sarebbe di questa forma:
conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
La sottostante libpq driver che psycopg2 userà quindi il .pgpass file per ottenere la password.