【发布时间】:2020-04-16 22:07:46
【问题描述】:
尝试在 Mac Air 上的 Eclipse 中运行 python cgi 服务器并在 Firefox 中显示 hello world,两个问题。这是要在文件 run_server.py 中运行的代码
from http.server import HTTPServer
from http.server import CGIHTTPRequestHandler
def run_server(handler_class,server_class=HTTPServer ):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
def main():
run_server(CGIHTTPRequestHandler)
if __name__ == '__main__':
main()
项目目录下的目录结构
analytics
\
run_server.py
cgi-bin
\
index.py
index.py
#!/usr/bin/env python
print('Content-type: text/html;\n\n')
print('<h1>Hello, world!</h1>')
从项目目录中的命令行,你可以运行
$ python -m analytics.run_server
确保分析目录中有一个 __init__.py 以使用 -m 选项。现在尝试加载页面
http://localhost:8000/cgi-bin/index.py
在 Chrome 中,一切正常。所以有什么问题? 在 Firefox 中,永远找不到该 url。 同样在 Mac 上,如果您从 Eclipse IDE 内部运行服务器,cgi 会尝试运行安装了 OS 的 python 3 代码 python 2 Firefox 404s,超时,显示一个空白页面,或者如果 url 问题已解决,则尝试保存文件。当存在 url 问题时,它也不提供静态内容。 运行 cgi 的 Eclipse 控制台将显示来自 python lib site.py print 语句的语法错误的堆栈跟踪,提示问题的性质。查看 Python 3 的新特性
Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)
在下面的答案部分中遵循两者的简单解决方案。
【问题讨论】:
标签: python eclipse firefox localhost cgi-bin