Du importerer det ikke til din Python program. Pointen med .pgpass
er, at det er en almindelig fil underlagt systemets filtilladelser, og libpq driver, som biblioteker såsom psycopg2 bruge til at oprette forbindelse til Postgres vil se på denne fil efter adgangskoden i stedet for at kræve, at adgangskoden skal være i kildekoden eller bede om den.
Dette er heller ikke en fil på serversiden, men en fil på klientsiden. Så på en *nix-boks vil du have en ~/.pgpass
fil, der indeholder legitimationsoplysningerne for de forskellige forbindelser, du ønsker at kunne oprette.
Rediger som svar på kommentar fra OP:
To hovedting skal ske for at psycopg2 kan udføres for at godkende korrekt via .pgpass
:
- Gør det ikke angiv en adgangskode i strengen, der sendes til
psycopg2.connect
- Sørg for, at den korrekte post er tilføjet til
.pgpass
fil for den bruger, der vil oprette forbindelse via psycopg2 .
For eksempel for at få dette til at fungere for alle databaser for en bestemt bruger på localhost port 5432 , vil du tilføje følgende linje til denne brugers .pgpass
fil:
localhost:5432:*:<username>:<password>
Og derefter connect
opkaldet ville have denne form:
conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
Den underliggende libpq driver, der psycopg2 uses vil derefter bruge .pgpass
fil for at få adgangskoden.