主要文档页面声称它确实如此: “Python 2.7 运行时支持 WSGI 标准和 CGI 标准以实现向后兼容性。”
那么这一定是一个非常明显的问题,但我无法弄清楚。我是 Google App Engine 的新手,正在尝试使用它来运行旧的 Python CGI 应用程序。我已经在我的 Linux 系统上安装了 SDK,并且有一个 app.yaml 文件,上面写着:
application: your-app-id
version: 3
runtime: python27
api_version: 1
threadsafe: false
handlers:
- url: /.*
script: members.py
脚本和必要的文件位于 google_appengine 文件夹内名为 sms-gae 的文件夹中。当我跑
./dev_appserver.py sms-gae/
该程序在我访问 localhost:8080 时运行,但输出显示在终端控制台而不是浏览器中。没有任何东西输出到浏览器。相同的应用程序在普通的 Web 服务器 CGI 环境中运行良好。
根据主要的 GAE 文档,“App Engine 收集请求处理程序脚本写入标准输出流的所有数据,然后等待脚本返回。当处理程序完成时,所有输出数据都会发送给用户。 "
从我所看到的GAE 开发环境文档中,我已经正确设置了它。关于使用 CGI 脚本的文档相当稀少,并且在 Internet 上也找不到关于此问题的任何内容。
输出如下:
INFO 2013-10-10 23:05:55,535 sdk_update_checker.py:245] Checking for updates to the SDK.
INFO 2013-10-10 23:05:56,838 sdk_update_checker.py:289] This SDK release is newer than the advertised release.
INFO 2013-10-10 23:05:57,181 api_server.py:138] Starting API server at: http://localhost:49954
INFO 2013-10-10 23:05:57,225 dispatcher.py:168] Starting module "default" running at: http://localhost:8080
INFO 2013-10-10 23:05:57,241 admin_server.py:117] Starting admin server at: http://localhost:8000
Content-Type: text/html; charset= utf-8
[The Content-Type line comes from my script and is followed by its output]
INFO 2013-10-10 23:06:05,227 members.py:73] No userid or password supplied.
INFO 2013-10-10 23:06:05,262 module.py:599] default: "GET / HTTP/1.1" 200 -