0

我正在尝试使用 psycopg2 将数据从 pgadmin 数据库中提取到 pandas 数据框中。我的 .py 文件在终端中正常运行,但是当我在 python 交互式(vs 代码)或 jupyter 笔记本中运行它时,出现以下错误。

代码:

with psycopg2.connect(conn_string) as conn:
    sql = "SELECT * FROM table"
    df = pd.read_sql_query(sql, conn)

错误:

OperationalError                          
---> 19 with psycopg2.connect(conn_string) as conn:
     20     sql = "SELECT * FROM table"
     21     df = pd.read_sql_query(sql, conn)

//anaconda3/lib/python3.7/site-packages/psycopg2/__init__.py in connect(dsn, connection_factory, cursor_factory, **kwargs)
    124 
    125     dsn = _ext.make_dsn(dsn, **kwargs)
--> 126     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
    127     if cursor_factory is not None:
    128         conn.cursor_factory = cursor_factory

OperationalError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

有谁知道为什么会这样?当我在 vs 代码中打开 python 交互时,我也看到了这个错误:

Jupyter kernel cannot be started from 'Python 3.7.4 64-bit'. 
Using closest match Python 3.7.3 64-bit ('anaconda3': conda) instead.
Error starting original kernel: Error: Module 'notebook' not installed.
4

1 回答 1

0

我是这个扩展的开发人员,我可以在这里解决我认为的问题。目前在 VSCode 中,我们使用您在 VSCode 左下角选择的 Python 解释器启动本地 Jupyter 服务器。在我看来,您选择了 Python 3.7.4 解释器,并且该解释器中没有安装 Juypter 笔记本。所以我们的代码然后回退到找到另一个有 jupyter 的解释器/环境(在这种情况下是 3.7.3)。如果 3.7.3 Anaconda 没有您需要运行的完整环境,那么这可能就是您在此处看到错误的原因。如果该 3.7.4 环境是您要在其中运行交互式窗口的环境,请确保您可以首先在该环境中从命令行运行 jupyter 笔记本。

于 2019-10-15T20:16:50.903 回答