Você não o importa para seu Python programa. O ponto de
.pgpass
é que é um arquivo regular sujeito às permissões de arquivo do sistema, e a libpq driver que bibliotecas como psycopg2 use para se conectar ao Postgres procurará a senha neste arquivo em vez de exigir que a senha esteja no código-fonte ou solicitá-la. Além disso, este não é um arquivo do lado do servidor, mas do lado do cliente. Então, em uma caixa *nix, você teria um
~/.pgpass
arquivo contendo as credenciais para as várias conexões que você deseja poder fazer. Editar em resposta ao comentário do OP:
Duas coisas principais precisam acontecer para que psycopg2 para autenticar corretamente via
.pgpass
:- Não não especifique uma senha na string passada para
psycopg2.connect
- Certifique-se de que a entrada correta foi adicionada ao
.pgpass
arquivo para o usuário que se conectará via psycopg2 .
Por exemplo, para fazer isso funcionar para todos os bancos de dados de um usuário específico em localhost porta 5432 , você adicionaria a seguinte linha ao
.pgpass
desse usuário Arquivo:localhost:5432:*:<username>:<password>
E então o
connect
chamada seria desta forma:conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
A libpq subjacente driver que psycopg2 usa então utilizará o
.pgpass
arquivo para obter a senha.