首先让我说这篇文章与该网站上的许多文章有关,而我只是为了后代而发表,并帮助添加证据说明为什么发生此特定错误。
因此,我运行了一个脚本,该脚本将数据从sql提取到数据帧中,然后执行一些操作并将输出写回到sql服务器。当我将executemany()
添加到我的sqlalchemy
脚本中以使用熊猫to_sql
命令写入服务器时,我首先开始遇到随机的“内核死”错误。我无法一生解决这个问题。
继续往前走,我开始不使用executemany()
就将大量信息写回到服务器,并收到一个错误,即在写入服务器时我有重复的主键。从历史上我知道,在从熊猫转换为水框架时存在一个已知的问题,即水框架有时会在框架中创建重复记录。当这转换回熊猫时,您仍然会拥有重复项,而将其写回到服务器时,您仍然会拥有重复项。写回我的服务器的值之一是主键,因此不能有重复的条目并导致错误。
所有这些。当我关闭executemany()
时,出现错误,即主键中有重复项并且操作停止。当我打开executemany()
时,出现错误消息“内核已死”。
因此,根据这些证据,我建议内核具有Died错误是另一个包/实体中的一些错误,该错误未转换回内核并导致内核死亡错误。
问题是:在这两个问题上我们在哪里?我看到的帖子大约11个月大
如果在这里不允许发布此帖子,那么在哪里可以发布这样的信息以帮助开发人员理解常见问题?
编辑:继续...
只需使用相同的脚本在jupyter中运行测试。我收到了与executemany()重复的主键相对应的错误。只是要清楚一点:在间谍程序中,我会收到“内核死亡”的信息。
但是我也收到此错误。
C:\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py in
_execute_context(self, dialect, constructor, statement, parameters, *args)
1169 parameters,
-> 1170 context)
1171 elif not parameters and context.no_parameters:
C:\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py in
do_executemany(self, cursor, statement, parameters, context)
503 def do_executemany(self, cursor, statement, parameters,
context=None):
--> 504 cursor.executemany(statement, parameters)
505
答案 0 :(得分:0)
我刚刚找到了新手解决方案。将所有项目文件复制到新目录,将Spyder设置为出厂默认值,然后在新目录中创建一个新项目!死内核复活了!
答案 1 :(得分:0)
不过,在使用 TensorFlow 时,我也遇到了类似的情况。我通过在脚本的开头添加以下代码来修复它
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
这可能与内核多次尝试导入模块导致崩溃有关。