Du importerar det inte till din Python program. Poängen med .pgpass
är att det är en vanlig fil som omfattas av systemets filbehörigheter, och libpq drivrutin vilka bibliotek som psycopg2 använd för att ansluta till Postgres kommer att leta efter lösenordet i den här filen istället för att kräva att lösenordet finns i källkoden eller be om det.
Det här är inte heller en fil på serversidan, utan en fil på klientsidan. Så på en *nix-box skulle du ha en ~/.pgpass
fil som innehåller autentiseringsuppgifterna för de olika anslutningarna du vill kunna göra.
Redigera som svar på kommentar från OP:
Två huvudsakliga saker måste hända för att psycopg2 ska fungera för att korrekt autentisera via .pgpass
:
- Gör inte ange ett lösenord i strängen som skickas till
psycopg2.connect
- Se till att rätt post läggs till i
.pgpass
fil för användaren som ska ansluta via psycopg2 .
Till exempel för att få detta att fungera för alla databaser för en viss användare på localhost port 5432 , skulle du lägga till följande rad i användarens .pgpass
fil:
localhost:5432:*:<username>:<password>
Och sedan connect
anropet skulle ha denna form:
conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
Den underliggande libpq drivrutin som psycopg2 uses kommer då att använda .pgpass
fil för att få lösenordet.