Django - 在debug.py列表索引超出范围

时间:2010-07-15 15:57:04

标签: django

我无法弄清楚为什么我会收到此错误。请帮忙。

追踪(最近一次呼叫最后一次):

文件“C:\ Python26 \ lib \ site-packages \ django \ core \ servers \ basehttp.py”,第280行,在运行中     self.result = application(self.environ,self.start_response)

文件“C:\ Python26 \ lib \ site-packages \ django \ core \ servers \ basehttp.py”,第674行,调用     return self.application(environ,start_response)

文件“C:\ Python26 \ lib \ site-packages \ django \ core \ handlers \ wsgi.py”,第241行,调用     response = self.get_response(request)

文件“C:\ Python26 \ lib \ site-packages \ django \ core \ handlers \ base.py”,第142行,在get_response中     return self.handle_uncaught_exception(request,resolver,exc_info)

文件“C:\ Python26 \ lib \ site-packages \ django \ core \ handlers \ base.py”,第166行,在handle_uncaught_exception中     return debug.technical_500_response(request,* exc_info)

文件“C:\ Python26 \ lib \ site-packages \ django \ views \ debug.py”,第58行,在technical_500_response中     html = reporter.get_traceback_html()

文件“C:\ Python26 \ lib \ site-packages \ django \ views \ debug.py”,第109行,在get_traceback_html中     frames = self.get_traceback_frames()

get_traceback_frames中的文件“C:\ Python26 \ lib \ site-packages \ django \ views \ debug.py”,第228行     pre_context_lineno,pre_context,context_line,post_context = self._get_lines_from_file(filename,lineno,7,loader,module_name)

文件“C:\ Python26 \ lib \ site-packages \ django \ views \ debug.py”,第209行,在_get_lines_from_file中     context_line = source [lineno] .strip('\ n')

IndexError:列表索引超出范围

是否可以使用notepad ++?

4 个答案:

答案 0 :(得分:6)

我知道这个答案有点晚,但它可以帮助其他人:)

在我的情况下,那是因为我没有重新启动apache和旧文件使用和新的冲突(我不知道如何)。一个简单的apache重启修复了这个问题(我觉得优雅也应该工作)。

一般来说,当文件中存在冲突而代码中没有问题时,似乎会发生错误。尝试删除pyc文件,重新启动django,apache或者当前正在使用python代码的内容。

这对我有用。

答案 1 :(得分:1)

源文件包含djangos调试页面不支持的Macintosh换行符(\ r \ n)。

请参阅https://code.djangoproject.com/ticket/13958#comment:5

答案 2 :(得分:0)

这很奇怪。获取hexdump实用程序并查看源文件中的字节数。也许在文件开头有一个字节顺序标记?

答案 3 :(得分:0)

我有类似的问题,Stackoverflow上的大多数建议是a)删除* .pyc文件并重新启动网络服务器或b)检查Macintosh换行符(对于Mac用户)。

两者都没有帮助。

错误结果相当微不足道。出于某种原因“DEBUG = True”我在我的httpd日志文件中收到此错误,但是当我更改“DEBUG = False”时,我开始在日志文件中收到实际错误。所以至少在我的情况下,这是一个错误的错误,因为你没有看到真正的问题,因为与DEBUG = True / False开关有关。

简而言之,如果设置为True,则尝试 DEBUG = False ,反之亦然。