Ошибка сокета в скрипте 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. Любая помощь будет принята с благодарностью, спасибо.