Django.db.utils.InterfaceError:(0,“”)

2024-04-20 06:38:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近在我开发的一个工具中实现了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 (most recent call last): File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py", line 85, in _execute return self.cursor.execute(sql, params) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute return self.cursor.execute(query, args) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\cursors.py", line 170, in execute result = self._query(query) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\cursors.py", line 328, in _query conn.query(q) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 515, in query self._execute_command(COMMAND.COM_QUERY, sql) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 745, in _execute_command raise err.InterfaceError("(0, '')") pymysql.err.InterfaceError: (0, '')

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "MyProject/Query.py", line 1900, in File "MyProject/Query.py", line 1803, in multiple_query File "MyProject/Query.py", line 1836, in single_query File "MyProject/Query.py", line 1563, in query_all_databases self.database_saving_all() File "MyProject/Query.py", line 243, in database_saving_all self.database_saving_mets() File "MyProject/Query.py", line 519, in database_saving_mets met.save_to_SQL_db() File "MyProject\Compound.py", line 829, in save_to_SQL_db else: File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\manager.py", line 82, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py", line 393, in get num = len(clone) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py", line 250, in len self._fetch_all() File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py", line 1186, in _fetch_all self._result_cache = list(self._iterable_class(self)) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py", line 54, in iter results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\compiler.py", line 1065, in execute_sql cursor.execute(sql, params) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py", line 100, in execute return super().execute(sql, params) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py", line 68, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers return executor(sql, params, many, context) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py", line 85, in _execute return self.cursor.execute(sql, params) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\utils.py", line 89, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py", line 85, in _execute return self.cursor.execute(sql, params) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute return self.cursor.execute(query, args) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\cursors.py", line 170, in execute result = self._query(query) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\cursors.py", line 328, in _query conn.query(q) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 515, in query self._execute_command(COMMAND.COM_QUERY, sql) File "user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 745, in _execute_command raise err.InterfaceError("(0, '')") django.db.utils.InterfaceError: (0, '')


Tags: djangoinpyselfexecutelibpackageslocal
1条回答
网友
1楼 · 发布于 2024-04-20 06:38:53

我知道,这不是最佳答案,但对我来说,尝试关闭3次连接,然后重新连接再次奏效。在

 try:
     connections.close_all()
 except:
     try:
         connections.close_all()
     except:
         try:
             connections.close_all()
         except:
             pass

还试图将CONN_MAX_AGE设置为“无”设置.py,但那没用。在

相关问题 更多 >