Ошибка сокета в скрипте pg8000

Я использую pg8000 для взаимодействия с базой данных postgresql в скрипте Python. Я продолжаю получать сообщение об ошибке, подобное следующему, хотя и не в той же строке каждый раз:

Traceback (most recent call last):
  File "C:\Users\myname\workspace2\anaconda_scripts\file_name.py", line 311, in <module>
    object_name.method_name(cur)
  File "C:\Users\myname\workspace2\anaconda_scripts\file_name.py", line 134, in method_name
    conn.commit()
  File "C:\Users\myname\AppData\Local\Continuum\Anaconda\lib\site-packages\pg8000\core.py", line 1398, in commit
    self.execute(self._cursor, "commit", None)
  File "C:\Users\myname\AppData\Local\Continuum\Anaconda\lib\site-packages\pg8000\core.py", line 1684, in execute
    self.handle_messages(cursor)
  File "C:\Users\myname\AppData\Local\Continuum\Anaconda\lib\site-packages\pg8000\core.py", line 1757, in handle_messages
    self._close()
  File "C:\Users\myname\AppData\Local\Continuum\Anaconda\lib\site-packages\pg8000\core.py", line 1419, in _close
    self._flush()
  File "C:\Users\myname\AppData\Local\Continuum\Anaconda\lib\socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
socket.error: [Errno 10054] An existing connection was forcibly closed by the remote host

Я не знаю много о сокетах, поэтому я попробовал / проверил следующее:

  • добавленной conn.commit() после каждого cur.execute() в коде
  • Вместо select * в операторе execute я выбрал только нужные мне столбцы
  • Я убедился, что я включил cur.close() conn.close() в конце сценария

Есть ли у кого-нибудь какие-либо предложения или идеи о pg8000, которые помогли бы мне выяснить, какие другие аспекты скрипта нужно рассмотреть? Я искал конкретную ошибку, но все вопросы / ответы, похоже, касаются непосредственного взаимодействия с сокетами, и я использую сокеты косвенно через pg8000. Любая помощь будет принята с благодарностью, спасибо.

0 ответов

Другие вопросы по тегам