psycopg2 OperationalError в Python Interactive / Jupyter Notebook - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь получить данные в pandas dataframe из базы данных pgadmin, используя psycopg2. Мой файл .py работает нормально в терминале, но когда я запускаю его в интерактивных (против кода) ноутбуках Python или 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.

Кто-нибудь знает, почему это может иметь место? Когда я открываю Python Interactive в VS Code, я также вижу эту ошибку:

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.

1 Ответ

0 голосов
/ 15 октября 2019

Я разработчик этого расширения, и я могу решить, что, по моему мнению, является проблемой здесь. В настоящее время в VSCode мы запускаем локальный сервер Jupyter, используя интерпретатор Python, который вы выбрали в левом нижнем углу VSCode. Мне кажется, что у вас выбран интерпретатор Python 3.7.4 и в нем нет записных книжек Juypter. Поэтому наш код возвращается к поиску другого интерпретатора / среды, в которой есть jupyter (в данном случае 3.7.3). Если 3.7.3 Anaconda не имеет полной среды, которую вам нужно запустить, возможно, именно поэтому вы видите здесь ошибки. Если вы хотите запустить интерактивное окно в среде 3.7.4, убедитесь, что вы можете сначала запустить блокноты jupyter из командной строки в этой среде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...