Python cgi奇怪的行为
我有一个带有html输出的简单CGI python脚本:Python cgi奇怪的行为,python,cgi,Python,Cgi,我有一个带有html输出的简单CGI python脚本: print "Content-Type: text/html" print print hours,minutes,seconds,"," 当我从linux shell运行它时,它运行得很好,但是当从浏览器调用它时,我得到的只是一个空白页面。我以前用CRLF EOF代替LF的时候也遇到过这个问题,但我改变了它,直到最近做了一些修改,它才正常工作 我不知道当脚本在shell中正常运行时该怎么办,但从浏览器调用时却不知道该怎么办。表示服务器
print "Content-Type: text/html"
print
print hours,minutes,seconds,","
当我从linux shell运行它时,它运行得很好,但是当从浏览器调用它时,我得到的只是一个空白页面。我以前用CRLF EOF代替LF的时候也遇到过这个问题,但我改变了它,直到最近做了一些修改,它才正常工作
我不知道当脚本在shell中正常运行时该怎么办,但从浏览器调用时却不知道该怎么办。
表示服务器出现了问题。CGI脚本中导致此错误的最常见原因是CGI脚本本身存在未捕获错误,导致其过早终止。最好检查Apache错误日志。它们通常位于/var/log//error.log
(可以是/var/log/apache2/error.log或/var/log/httpd/error.log等)
既然您已经说过这在shell中工作得很好,我猜这是sys.path
的一个问题(请记住,Apache是不同的用户,它会有不同的设置),但我需要了解更多才能确定
其他问题可以是:
- 不同的Python版本(3对2)
- 文件具有错误的权限(我相信755是标准)
- Python中与环境相关的语法错误
表示服务器出现问题。CGI脚本中导致此错误的最常见原因是CGI脚本本身存在未捕获错误,导致其过早终止。最好检查Apache错误日志。它们通常位于/var/log//error.log
(可以是/var/log/apache2/error.log或/var/log/httpd/error.log等)
既然您已经说过这在shell中工作得很好,我猜这是sys.path
的一个问题(请记住,Apache是不同的用户,它会有不同的设置),但我需要了解更多才能确定
其他问题可以是:
- 不同的Python版本(3对2)
- 文件具有错误的权限(我相信755是标准)
- Python中与环境相关的语法错误
hours
、minutes
和seconds
的值,并尝试用常量字符串替换该打印(即打印“hello world”
而不是打印小时、分钟、秒,“,”
),这无关紧要。即使我打印“你好”,我仍然会得到一张空白页。空白页的来源是:您确定服务器使用Python 2吗?如果它使用的是Python3,那么这段代码将引发一个异常。这可能是错误的原因。还要检查你的权限。仅从粘贴的代码很难判断。请粘贴hours
、minutes
和seconds
的值,并尝试用常量字符串替换该打印(即打印“hello world”
而不是打印小时、分钟、秒,“,”
),这无关紧要。即使我打印“你好”,我仍然会得到一张空白页。空白页的来源是:您确定服务器使用Python 2吗?如果它使用的是Python3,那么这段代码将引发一个异常。这可能是错误的原因。还要检查您的权限。另外,如果错误在代码中,并且不是服务器问题,那么使用cgitb模块进行有用的回溯。但我不明白为什么。。。我正在使用UTF8编码在Notepad++中扫描文件。更改为ANSI后,一切都正常了。此外,如果错误在代码中,并且不是服务器问题,请使用cgitb模块进行有用的回溯,我发现了。但我不明白为什么。。。我正在使用UTF8编码在Notepad++中扫描文件。改成ANSI后,一切都正常了。