可以使用 PSQL 连接到 postgres,但今天无法使用 python psycopg2 连接

问题描述 投票:0回答:1

我使用的是 VPN。 我可以使用 PSQL 成功连接到 Postgres 服务器

/opt/homebrew/bin/psql postgres://myuser:[email protected]:5432/postgres

然而,尽管到目前为止这一切都有效,但今天使用 Python/psycopg2 却出现了问题:

(我正在使用 Anaconda Spyder)

今天突然出现错误。到目前为止它一直在工作。 Python 连接器代码很简单:

config = load_config()   # comes from database.ini file
print(config)   # when I print it out, I can verify it is correct
conn = db_conn.connect(config) 
cur = conn.cursor() 

这是我的 iPython 控制台输出:

FATAL:  no PostgreSQL user name specified in startup packet
Traceback (most recent call last):

  File /opt/anaconda3/lib/python3.12/site-packages/spyder_kernels/py3compat.py:356 in compat_exec
    exec(code, globals, locals)

  File ~/python/export_query_to_csv_template.py:50
    cur = conn.cursor()

AttributeError: 'NoneType' object has no attribute 'cursor'

Restarting kernel...

现在,如果我在 Spyder 环境之外的命令行上运行,我会得到以下信息:

12:01:31 wdavis $ python ./python/export_query_to_csv_template.py
FATAL:  no PostgreSQL user name specified in startup packet
FATAL:  no PostgreSQL user name specified in startup packet

Traceback (most recent call last):
  File "/Users/wdavis/./python/export_query_to_csv_template.py", line 50, in <module>
    cur = conn.cursor()   
          ^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'cursor'
zsh: trace trap  python ./python/export_query_to_csv_template.py

但是我再次看到我的配置字典是正确的,并且我确实指定了用户名。 这真是令人费解。

有什么想法吗? 我可以看到我的用户名已指定,但它说没有。 我应该重建一个包还是尝试不同的 Python 解释器? 对 PSQL 的工作感到困惑,但事实并非如此。

python-3.x postgresql anaconda spyder psycopg2
1个回答
0
投票

尝试建立这样的连接:

conn = psycopg2.connect(
    user='test',
    password='test',
    host=192.168.x.x,
    port='5432'
)
cur = conn.cursor() 

如果一切正常,那么您的配置

database.ini
似乎已损坏。

© www.soinside.com 2019 - 2024. All rights reserved.