在CGIHTTPServer运行的CGI脚本中为shebang指定python版本

时间:2017-10-06 15:36:16

标签: python cgi

我在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编译)

0 个答案:

没有答案
相关问题