【问题标题】:psycopg2 OperationalError in python interactive/jupyter notebookpython交互式/jupyter笔记本中的psycopg2 OperationalError
【发布时间】:2019-10-14 21:12:20
【问题描述】:

我正在尝试使用 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.

【问题讨论】:

    标签: python pandas visual-studio-code psycopg2 python-interactive


    【解决方案1】:

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

    【讨论】:

    • 我可以从命令行运行 jupyter notebooks,如何确保 jupyter notebooks 安装在 python 3.7.4 中?
    • 因此,当您从命令行运行时,您必须以某种方式获取特定的 python 版本。从上面的结果来看,您的系统上必须同时安装了 3.7.4 和 3.7.3。但是从我的角度来看,我无法真正说出您在这些环境中使用的是什么。大多数人使用 virtualenvs 或 conda envs 之类的东西来管理它。您只需要使用该 3.7.4 获取命令提示符并将 jupyter 安装到其中。
    猜你喜欢
    • 1970-01-01
    • 2016-07-04
    • 2021-01-27
    • 2017-03-22
    • 2020-07-19
    • 1970-01-01
    • 2013-07-28
    • 2016-05-12
    • 2018-01-05
    相关资源
    最近更新 更多