1
我有一个特定的Python程序,它依赖于一个CGI脚本,它在我用CGIHTTPServer启动一个Python BaseHTTPServer时起作用。但我希望所有这些都可以在不安装Python的情况下运行,所以我使用了Py2Exe。Py2Exe本地服务器不执行CGI
我设法从我的脚本创建一个.exe文件,它在执行时确实创建了一个工作的本地Web服务器。但是,CGI脚本只是作为代码显示并且未被执行。
这里是整个服务器脚本,也可以启动默认的浏览器:
#!/usr/bin/env python
import webbrowser
import BaseHTTPServer
import CGIHTTPServer
server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8008)
handler.cgi_directories = ["/cgi"]
httpd = server(server_address, handler)
webbrowser.open_new("http://localhost:8008/cgi/script.py");
httpd.serve_forever()
然而,script.py只是显示并没有执行。我无法弄清楚为什么,并且我已经在handler.cgi_directories中尝试了几个不同的版本,以防万一...
要启动浏览器启动服务器 – stark
赫赫之前,不,这不是答案,但感谢。该脚本在被Python调用时起作用 - 浏览器需要一段时间才能初始化,因此httpd已经在服务。不过,如果我在'永远投放'之后启动浏览器,那么该行从未被调用过。 无论如何,一旦服务器启动并运行,我可能会手动打开一个浏览器窗口并浏览到该地址,结果相同:我看到CGI代码,它没有被执行。 – Notnasiul
在loinerface上运行tcpdump并查看请求和响应。 – stark