1

我正在使用 pg8000 在 python 脚本中与 postgresql 数据库进行交互。我不断收到如下错误,但不是每次都在同一行:

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 *在执行语句中,我只选择了我需要的列
  • 我确保我包含 cur.close() conn.close() 在脚本的末尾

有没有人对 pg8000 有任何建议或见解,可以帮助我弄清楚要研究的脚本的其他方面?我已经搜索了具体的错误,但所有的问题/答案似乎都是关于直接与套接字交互的,我通过 pg8000 间接使用套接字。任何帮助将不胜感激,谢谢。

4

0 回答 0