擅长:python、mysql、java
<p>您不会将它导入到您的<em>Python</em>程序中。<code>.pgpass</code>的要点是,它是受系统文件权限限制的常规文件,库(如<em>psycopg2</em>用于连接<em>Postgres</em>的<em>libpq</em>驱动程序将查找此文件以获取密码,而不是要求密码在源代码中或提示输入密码。</p>
<p>此外,这不是服务器端文件,而是客户端文件。因此,在*nix框中,您将拥有一个<code>~/.pgpass</code>文件,其中包含您希望能够建立的各种连接的凭据。</p>
<p><strong>根据OP的评论进行编辑:</strong></p>
<p>要想通过<code>.pgpass</code>正确验证psycopg2</em>需要发生两件主要的事情:</p>
<ol>
<li>不要在传递给<code>psycopg2.connect</code>的字符串中指定密码</li>
<li>确保通过<em>psycopg2</em>连接的用户在<code>.pgpass</code>文件中添加了正确的条目。</li>
</ol>
<p>例如,要使此操作适用于<strong>localhost</strong>端口<strong>5432</strong>上特定用户的所有数据库,您可以将以下行添加到该用户的<code>.pgpass</code>文件中:</p>
<pre><code>localhost:5432:*:<username>:<password>
</code></pre>
<p>然后<code>connect</code>调用的形式如下:</p>
<pre><code>conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
</code></pre>
<p>psycopg2</em>使用的底层<em>libpq</em>驱动程序将利用<code>.pgpass</code>文件获取密码。</p>