Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 没有对manage.py runserver的回溯_Python_Django_Traceback - Fatal编程技术网

Python 没有对manage.py runserver的回溯

Python 没有对manage.py runserver的回溯,python,django,traceback,Python,Django,Traceback,奇怪的问题。我有一个Django网站,我以两种方式运行: 通过apache/wsgi在:80正常 在python manage.py runserver打开的情况下:测试时为8000 通过wsgi,一切正常,但是使用runserver,当我到达任何错误页面(debug=True)时,页面加载到一半,然后一直加载,没有显示回溯 关于“中途”加载的一些注意事项: 对于相同的错误,它似乎加载到完全相同的点 对于不同的错误,它将是不同的点(根据Firebug,追溯的不同部分和不同的文件大小) 对于不同

奇怪的问题。我有一个Django网站,我以两种方式运行:

  • 通过apache/wsgi在:80正常
  • python manage.py runserver
    打开的情况下:测试时为8000
  • 通过wsgi,一切正常,但是使用
    runserver
    ,当我到达任何错误页面(
    debug=True
    )时,页面加载到一半,然后一直加载,没有显示回溯

    关于“中途”加载的一些注意事项:

    • 对于相同的错误,它似乎加载到完全相同的点
    • 对于不同的错误,它将是不同的点(根据Firebug,追溯的不同部分和不同的文件大小)
    • 对于不同的浏览器,它将加载到不同的点(如果重新加载页面,则始终加载到相同的点)
    • 举个例子:我现在有一个ValueError,它加载到回溯的第一步,在“localvars”加载
      request
      。在Firefox中,它始终最多加载
      SSH\u连接
      ,而在Chrome中,它最多加载
      SHELL
      (在Firefox中加载良好)
    • 服务器重启无效

    正常(非错误)页面加载正常。控制台没有显示任何特殊内容,只显示代码为500的请求。

    听起来您的代码中有一个
    pdb.set_trace()
    。我猜是在
    \uuuuunicode\uuuuu
    方法中,还是在呈现错误页面的过程中调用的东西。这是基于dev服务器的输出被缓冲的概念

    另一种(很可能)的可能性是,在某个地方(很可能与前面提到的
    set_trace
    情况类似)有一个无休止的递归调用,但是递归功能所用的时间刚好足够长,以至于您永远看不到
    运行时错误:超过了最大递归深度

    例如:

    import time
    
    def foo():
        time.sleep(.2)
        bar()
    
    def bar():
        foo()
    
    bar()
    
    否则很难让Python程序挂起,除非您是有意这样做的。

    请参见


    解决方法是安装“django extensions”和werkezeug,并使用
    manage.py runserver\u plus
    启动服务器。此增强的开发服务器在默认情况下会显示回溯和其他细节。

    控制台上运行
    runserver
    的地方打印了什么?它(通常)会显示代码为500的请求,但没有错误。您是否在本地服务器上尝试了
    curl
    wget
    ?它们可能会显示一些信息更丰富的错误消息。还可以尝试Chrome的“Inspect element”选项查看网络流量。谢谢您的回答。这是有道理的,但恐怕我没有在任何地方使用过
    set\u trace
    (直到现在我才真正意识到它的存在)。@Mark-没问题。我只是在答案上添加了另一种可能性。