0

这可能听起来很奇怪,但我似乎无法在任何地方找到示例.. 我正在尝试通过 CGI 在本地运行脚本,但我正在尝试通过 py2exe 将其作为 .exe 运行。

所以想法是您单击可执行文件并在本地启动 CGI 并运行脚本,而无需在机器上安装任何 python,您可以在浏览器中拉出本地网站,脚本正在生成网页。

所以我可以让所有这些东西在我安装了 python 的机器上工作,我创建了一个脚本,它导入我创建的用于启动 CGI 的 cgi 脚本并导入我想要显示的 python 脚本,我可以看到两者的编译版本它创建的 dist。但从这里我不知道去哪里,因为通常我只会通过本地主机 ping cgi-bin/script.py 文件夹,它会显示在我的浏览器中。

我的问题:CGI 和脚本可以在本地运行并显示为可执行文件,而机器上没有 python。并且创建了 bdist.win32 的额外构建文件是否需要以某种方式调用?

我假设在主程序中的某个地方我应该通过 html“显示”脚本,但不太确定在哪里执行此操作?我得到'cgi script is not a plain file ('//') 错误.. 不确定那个。

任何帮助表示赞赏,谢谢

4

1 回答 1

0

我通过导入webbrowser然后打开本地 url 部分解决了这个问题

webbrowser.open_new('http://localhost:8086') #proper url here

但正是 CGI 让我发疯。出于某种原因,当浏览到 python 脚本时,它不会执行 - 我只是得到代码,即使原始 python 脚本正确定义了 cgi_directories (它们确实与 python 脚本一起工作)。我希望这会有所帮助,至少。这是整个脚本:

#!/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()
于 2012-08-24T14:34:52.563 回答