今天在运行的django的时候一直提示”系统错误“,如下

except Exception, ex:
logger.error(printException())
return render_string("系统错误!")

便想当然的加入

except Exception, ex:
logger.error(printException())
print ex
return render_string("系统错误!")

可是一直没有输出错误原因,反复多次,竟然出现apache错误,真是,五味杂陈啊!

结果童鞋告诉我,python中print 和php中的echo完全不一样,没有输出到标准输出中,得用HttpResponse输出

至于上面那个问题在删除所有.pyc文件并重启服务器后正常,其次还有python对齐问题,没有对齐照样会报错

注:好多奇怪的问题,在确认代码正确的情况下,可以通过删除项目中所有.pyc文件(清除缓存),再重启apache生效

find . -iname '*.pyc' -delete

我在更改django代码后,只有在重启服务器下才能生效

原因: mod_python 运行一个开发服务器
因为 mod_python 缓存预载入了 Python 的代码,当在 mod_python 上发布 Django 站点时,你每 改动了一次代码都要需要重启 Apache 一次。 这还真是件麻烦事,所以这有个办法来避免它: 只要 加入MaxRequestsPerChild 1 到配置文件中强制 Apache 在每个请求时都重新载入所有的 代码。 但是不要在产品服务器上使用这个指令,这会撤销 Django 的特权。

如果你是一个用分散的 print 语句(我们就是这样)来调试的程序员,注意这 print 语 句在 mod_python 中是无效的;它不会像你希望的那样产生一个 Apache 日志。 如果你需要在 mod_python 中打印调试信息,可能需要用到 Python 标准日志包(Pythons standard logging package)

http://www.zhihu.com/question/21016845

http://www.cnblogs.com/sky20081816/p/3309925.html

http://djangobook.py3k.cn/2.0/chapter12/

http://blog.csdn.net/orochihuang/article/details/8500579   apache MaxRequestsPerChild设置

https://mike.tig.as/blog/2010/09/14/pdb/    python pdb

linux下利用django自带的server进行调试

python manage.py runserver IP:PORT