//:'str','int'不支持的操作数类型

时间:2013-12-21 09:49:24

标签: python python-2.7

我找到了这个函数来格式化引发的异常

def format_trace_except(self, sysexecinfo, smessage= ''):
   """ Trace exceptions """
   exc_type, exc_value, exc_traceback = sysexecinfo
   i, j = (traceback.extract_tb(exc_traceback, 1))[0][0:2]
   k = (traceback.format_exception_only(exc_type, exc_value))[0]
   trace('Err : ' + smessage + k + i + ', line ' + str(j))
   return k

当我使用此功能时,我收到以下错误:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 121, in get_response
    response = middleware_method(request, e)
  File "/home/xxxxxxxxxxxxx", line 60, in process_exception
    return self.handle_500(request, exception)
  File "/home/xxxxxxxxxxxxxxx", line 64, in handle_500
    response = self.format_trace_except(sys.exc_info())
  File "/home/xxxxxxxxxxxxxxxxx", line 74, in format_trace_except
    x = trace('Err : ' + smessage + k + i + ', line ' + str(j))
  File "/usr/lib/python2.7/inspect.py", line 1058, in trace
    return getinnerframes(sys.exc_info()[2], context)
  File "/usr/lib/python2.7/inspect.py", line 1043, in getinnerframes
    framelist.append((tb.tb_frame,) + getframeinfo(tb, context))
  File "/usr/lib/python2.7/inspect.py", line 1005, in getframeinfo
    start = lineno - 1 - context//2
TypeError: unsupported operand type(s) for //: 'str' and 'int'

有谁能告诉我如何解决它?

2 个答案:

答案 0 :(得分:3)

停止从*导入inspect

答案 1 :(得分:1)

inspect.trace只接受一个参数:context。它应该是int对象。