我最近在我正在开发的工具中实现了django . 在做一些测试时,我得到了一个django.db.utils.InterfaceError:(0,'')错误 . 我已经读过它可能是一个全局游标问题,但我只是通过django进行查询,让它处理游标 .

基本上我有关于化合物的信息,我在工具执行的几个时刻保存到mySQL .

这段特殊的代码将执行几次(到目前为止似乎工作正常),然后在执行结束时执行最后一次(全局保存) . 正是在这种全局保存中我得到了上述错误 . 这种全局保存只是迭代所有收集的化合物并保存它们 .

关于我可以做些什么来解决这个错误的想法?

def save_to_SQL_db(self):
    #####COMPOUND#####
    if not self.sql_key:
        cpd_django=Compound_db(cpd_level=self.get_cpd_level(),\
                               chemical_formula=self.get_Chemical_formula(),\
                               smiles=self.get_SMILES())
    else:
        cpd_django=Compound_db.objects.get(pk=self.sql_key)
        cpd_django.cpd_level=self.get_cpd_level()
        cpd_django.chemical_formula=self.get_Chemical_formula()
        cpd_django.smiles=self.get_SMILES()
    cpd_django.save()

错误:

Traceback(最近一次调用最后一次):文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ backends \ utils.py”,第85行,在_execute return self中 . cursor.execute(sql,params)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ backends \ mysql \ base.py”,第71行,执行返回self .cursor.execute(query,args)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ cursors.py”,第170行,执行结果= self._query(查询)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ cursors.py”,第328行,在_query conn.query(q)文件“user \ AppData \ Local \ Programs” \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ connections.py“,第515行,在查询self._execute_command(COMMAND.COM_QUERY,sql)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ connections.py“,第745行,在_execute_command中引发err.InterfaceError(”(0,'')“)pymysql.err.InterfaceError:(0,'')以上异常是以下异常的直接原因:回溯(最近一次调用最后一次):文件“MyProject / Query.py”,第1900行,文件“MyProject / Query.py”,第1803行,在multiple_query文件“MyProject / Query中.py“,第1836行,在single_query文件”MyProject / Query.py“,第1563行,在query_all_databases中self.database_saving_all()文件”MyProject / Query.py“,第243行,在database_saving_all中自我.database_saving_mets()文件”MyProject /Query.py“,第519行,在database_saving_mets中met.save_to_SQL_db()文件”MyProject \ Compound.py“,第829行,在save_to_SQL_db中:文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ models \ manager.py“,第82行,在manager_method中返回getattr(self.get_queryset(),name)(* args,** kwargs)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ models \ query.py“,第393行,在get num = len(clone)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ models \ query.py“,第250行,in len self._fetch_all()文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ models \ query.py”,第1186行,在_fetch_all self._result_cache = list( self._iterable_class(self))文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ models \ query.py”,第54行,在iter results = compiler.execute_sql (chunked_fetch = self.chunked_fetch,chunk_size = self.chunk_size)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py”,第1065行,在execute_sql中cursor.execute(sql,params)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ backends \ utils.py”,第100行,执行返回super() . execute(sql,params)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ backends \ utils.py”,第68行,执行返回self ._execute_with_wrappers(sql,params,many = False,executor = self._execute)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packag es \ django \ db \ backends \ utils.py“,第77行,在_execute_with_wrappers中返回执行者(sql,params,many,context)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ backends \ utils.py“,第85行,在_execute中返回self.cursor.execute(sql,params)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ utils.py“,第89行,在退出时从exc_value文件中提升dj_exc_value.with_traceback(traceback)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ backends \ utils.py“,第85行,在_execute中返回self.cursor.execute(sql,params)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ backends \ mysql \ base.py“,第71行,在执行中返回self.cursor.execute(query,args)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ cursors.py “,第170行,执行结果= self._query(查询)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ cursors.p y“,第328行,在_query conn.query(q)文件”user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ connections.py“,第515行,在查询中self._execute_command(COMMAND.COM_QUERY,sql)文件“user \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pymysql \ connections.py”,第745行,在_execute_command中引发err.InterfaceError(“ (0,'')“)django.db.utils.InterfaceError:(0,'')