在这个项目中我必须使用Python作为一个网站,我正在寻找错误进入我的浏览器,而不是获得500页。任何提示?
的添加
我只是使用普通的CGI没什么特别的
我按照here的解释尝试了这个,但它不起作用
#!/usr/bin/env python
print "Content-Type: text/plain"
print
import sys
sys.stderr = sys.stdout
f = open('non-existent-file.txt', 'r')
答案 0 :(得分:2)
这取决于您的Python Web框架设置。
例如,Pyramid框架有各种设置,可以在Web浏览器中启用回溯并启动交互式调试会话:
这完全取决于您的Python Web应用程序的连接方式以及它使用的架构等等。请在问题中包含完整的上下文信息以获得进一步的帮助。
有关使用Python和WSGI调试Web应用程序的更多信息:
http://code.google.com/p/modwsgi/wiki/DebuggingTechniques
如果您没有使用任何框架,您需要将所有内容放在主级别中尝试...除了块,因为Python标准库不提供将异常转换为HTML的工具。
import traceback
try:
...
except Exception as e:
# Set content type as text/plain (don't know how)
traceback.print_exc(e) # Print out exception as plain text
答案 1 :(得分:0)
我最终创建了一个脚本,读取error.log中的错误。 因此,您不必在同一个标签中显示错误,而是为其提供另一个标签。但是,不要忘记删除脚本,避免提供有关系统的信息。
#! /opt/python3/bin/python3
#Error Log Viewer
import subprocess
p = subprocess.Popen('cat /var/log/apache2/error.log | tail -5', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
print ('Content-type: text/html\n\n')
print ('''
<!DOCTYPE html >
<html> <head></head> <body>''')
for line in p.stdout.readlines():
print (line,'<br>')
print('''</html></body>''')