我在Windows上使用CGIHTTPServer运行CGI服务器。它通常使用默认的python路径执行CGI脚本。我知道我可以在开头更改shebang行来指定不同的python版本,但是,这不起作用。
这是服务器代码:
import socket
import CGIHTTPServer
PORT = 8000
host_name=socket.gethostname()
def run_server(port):
server_address = ('', PORT)
handler = CGIHTTPServer.CGIHTTPRequestHandler
handler.cgi_directories = ['']
server = CGIHTTPServer.BaseHTTPServer.HTTPServer(server_address, handler)
try:
server.serve_forever()
except KeyboardInterrupt:
server.socket.close()
if __name__=="__main__":
print("serving on:",host_name,PORT)
run_server(PORT)
这是客户端代码:
#!c:/python27/python.exe
import sys
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print sys.version_info
print "OK"
print '</body>'
print '</html>'
这是我打开页面/执行CGI脚本时在服务器上得到的输出:
WIN7-123.aa.cc - - [06/Oct/2017 11:21:09] command: C:\Python26\python.exe -u C:\test\KM\cgi.py ""
WIN7-123.aa.cc - - [06/Oct/2017 11:21:09] CGI script exited OK
当我在页面中打印sys.version_info时,它给了我这个
(2,6,12,'final',0)确定
CGIHTTPServer中是否有某个设置可以调整以允许指定python版本,或者您认为问题在哪里?谢谢!
- EDIT-- 这个问题的另一个动机是能够指定一个便携式python可执行文件的路径,以便在没有python的机器上运行我的应用程序(我用pyinstaller编译)