【问题标题】:Django - in debug.py list index out of rangeDjango - 在 debug.py 列表索引超出范围
【发布时间】:2011-03-16 12:06:59
【问题描述】:

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

Traceback(最近一次通话最后一次):

文件“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 = 记者.get_traceback_html()

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

文件“C:\Python26\lib\site-packages\django\views\debug.py”,第 228 行,在 get_traceback_frames 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++?

【问题讨论】:

    标签: django


    【解决方案1】:

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

    在我的情况下,那是因为我没有重新启动 apache 以及使用的旧文件并与新文件发生冲突(但我不知道如何)。一个简单的 apache 重启解决了这个问题(我认为优雅应该也可以工作)。

    一般来说,错误似乎发生在文件中存在冲突而不是您的代码问题时。尝试删除 pyc 文件,重新启动 django、apache 或当前正在使用你的 python 代码的东西。

    这对我有用。

    【讨论】:

    • 我以为我也重启了 apache,但是当我看到这篇文章时,我尝试“停止”运行 ps -ef | grep http (osx) 仍然有一堆 httpd 进程在运行。所以我完全杀死了httpd进程。然后开始解决问题
    • 这里相同,在 Django 升级后需要 restart 而不是 reload uwsgi。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      两者都没有帮助。

      这个错误被证明是相当微不足道的。由于“DEBUG=True”的某种原因,我在我的 httpd 日志文件中收到了这个错误,但是当我更改“DEBUG=False”时,我开始在日志文件中收到 actual 错误。因此,至少在我的情况下,这是一个错误的错误,因为您没有看到真正的问题,因为与 DEBUG=True/False 开关有关。

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-25
          • 2021-12-15
          • 1970-01-01
          • 2018-12-16
          相关资源
          最近更新 更多