我正在使用 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 间接使用套接字。任何帮助将不胜感激,谢谢。