1

Can anyone explain the following stack trace, in step by step, please? I want to find out what the root cause of the error is and where the error originates from.

Traceback (most recent call last):

1.   File "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensio ns\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 1 06, in exec_file
    exec_code(code, file, global_variables)

2.   File "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensio ns\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 8 2, in exec_code
    exec(code_obj, global_variables)

3.  File "C:\Users\ssr\FindAllCandidatePathsOfTrain.py", line 332, in <module>
    main()

4.      File "C:\Users\ssr\FindAllCandidatePathsOfTrain.py", line 296, in main
    stanoxDetails = checkTheLineHasStanox(lastLineSegment)

5.      File "C:\Users\ssr\FindAllCandidatePathsOfTrain.py", line 205, in checkTheLineHasStanox
    firstrow= query(queryStr, 'GetOne')

6.      File "C:\Users\ssr\FindAllCandidatePathsOfTrain.py", line 45, in query
    connection.close()

7.      File "C:\Python34\lib\site-packages\pypyodbc.py", line 2658, in close
    self.rollback()

8.      File "C:\Python34\lib\site-packages\pypyodbc.py", line 2581, in rollback
    check_success(self, ret)

9.      File "C:\Python34\lib\site-packages\pypyodbc.py", line 988, in check_success
    ctrl_err(SQL_HANDLE_DBC, ODBC_obj.dbc_h, ret, ODBC_obj.ansi)

10.      File "C:\Python34\lib\site-packages\pypyodbc.py", line 966, in ctrl_err
    raise DatabaseError(state,err_text) pypyodbc.DatabaseError: ('08S01', '[08S01] [Microsoft][ODBC SQL Server Driver]Co mmunication
link failure') 
Press any key to continue . . .
4

2 回答 2

2

如前所述,回溯显示错误发生之前执行的代码行和错误本身。在这种情况下,Python 不是错误的直接原因。

考虑:

10.      File "C:\Python34\lib\site-packages\pypyodbc.py", line 966, in ctrl_err
raise DatabaseError(state,err_text) pypyodbc.DatabaseError: ('08S01', '[08S01] [Microsoft][ODBC SQL Server Driver]Communication link failure')

这表明 Python 中的这个错误是一个“传递”错误。被调用的数据库驱动程序实际上是错误的原因,而 Python 只是通过 Python 传递它。祝你好运。

于 2015-12-16T19:00:35.533 回答
2

Python Traceback 将向您显示在错误发生之前正在执行的操作以及错误所在的行。

在这种情况下,您的模块在此行引发了错误:

File "C:\Python34\lib\site-packages\pypyodbc.py", line 966, in ctrl_err
raise DatabaseError(state,err_text)

错误文本如下所示:

pypyodbc.DatabaseError: ('08S01', '[08S01] [Microsoft][ODBC SQL Server Driver]Communication link failure')
于 2015-12-16T18:01:22.297 回答