当前位置: 动力学知识库 > 问答 > 编程问答 >

python - running CGI with py2exe

问题描述:

this may sound strange but i can't seem to find an example anywhere..

i'm trying to run a script via CGI locally but i'm trying to run it as an .exe via py2exe.

so the idea is that you click the executable and CGI starts locally and the script gets run without having to install any python on the machine and you can pull up the local website in browser and the script is producing the webpage.

So i can get all these things to work on my machine with python installed, and i created a script that imports the cgi script i created to start CGI and imports the python script that i want to display and i can see compiled versions of both in the dist that it creates. but from here i have no idea where to go, as normally i would just ping the cgi-bin/script.py folder via the local host and it would show up in my browser.

my question:

can a CGI and script be run locally and displayed as an executable without having python on the machine.

and the extra build file with bdist.win32 created does that need to be called somehow?

i'm assuming there is somewhere in the main program i'm supposed to 'display' the script via html but not quite sure where to do that?

i get the 'cgi script is not a plain file ('//') error.. not sure on that one.

any help appreciated, thx

网友答案:

I partially solved this by importing webbrowser and then openning the local url with

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

But it's precisely CGI what is driving me crazy. For some reason, when browsing to a python script, it won't execute - I just get the code, even when the original python script defined cgi_directories properly (they did work with the python script). I hope that helps a bit, at least. Here's the whole script:

#!/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()
分享给朋友:
您可能感兴趣的文章:
随机阅读: