f = open() / works in command line but not as CGI script [python] f = 在命令行中可以运行,但在CGI脚本中无法运行 [python]

2024-09-25 00:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

    #! /usr/bin/env python

import htmlSplitter, htmlGlue

headerContent, mainContent, sideSetup, sideContent, footerContent = htmlSplitter.split("../htdocs/bcc/register.html")


mainContent = "<h1>This is another Test</h1>"
sideContent = "<h2>Jonathan's here!</h2>"


htmlDoc = htmlGlue.glue(headerContent, mainContent, sideSetup, sideContent, footerContent)

f = open("../bcc/doctest.html", "w")
f.write(htmlDoc)
f.close()

print("Location:../bcc/doctest.html")
print

当我从命令行运行这个脚本时,它工作得非常好。但是,当它以“脚本的结尾”的时候,它给了我一个错误。我已经调试过了,如果我注释掉打开的段并写下doctest.html文档“(因此,我知道我包含的其他两个模块并不是导致问题的原因)。你知道为什么这部分代码不能作为CGI脚本工作吗?有什么我应该代替的吗?在

注意:我在'doctest.html文档'以确保脚本具有编辑权限。在

谢谢!在


Tags: 脚本htmlh2h1doctestprintbcchtmldoc
2条回答

在脚本开头添加以下内容:

#!/usr/bin/env python
print 'Content-Type: text/html'
print

我总是在python cgi脚本中声明Content-Type,这是有礼貌的。在

^{pr2}$

如果脚本出现错误,例如引发任何异常,^{}将向您显示一个很好的基于web的回溯。在

也许只是一个复制/粘贴错误,但你的shebang似乎是缩进的。取消插入,并尝试通过服务器上的命令行启动脚本,使用./yourscript(而不是python yourscript,因为这可能是web服务器执行脚本的方式)

相关问题 更多 >