¿Cómo alojar el script cgi de python con `python -m SimpleHTTPServer 8000` o` python -m CGIHTTPServer 8000`?

Cuando ejecuto python -m SimpleHTTPServer 8000 o python -m CGIHTTPServer 8000 en mi shell, estoy alojando el contenido de mi directorio actual en Internet.

Me gustaría hacer que el siguiente cgi_script.py funcione correctamente utilizando el comando anterior en la línea de comandos cuando navegue a 192.xxx.x.xx:8000/cgi_script.py

 #!/usr/bin/env python print "Content-Type: text/html" print print """\   

Hello World!

"""

Pero este script se muestra literalmente y no solo el “¡Hola mundo!” parte. Por cierto, cambié los permisos de los archivos a 755 para cgi_script.py, así como a la carpeta en la que los alojo.

Pruebe con python -m CGIHTTPServer 8000 .

Tenga en cuenta que tiene que mover el script a un directorio cgi-bin o htbin para poder ejecutarse.

SO no me permite hacer comentarios, así que estoy agregando esto como una respuesta por separado, además de la de rodrigo.

Puede usar otro parámetro cgi_directories que por defecto es ['/cgi-bin', '/htbin'] . Más información aquí

Cuando me encontré con este problema, descubrí que, dependiendo del directorio en el que se encuentre cuando ejecute el comando python -m CGIHTTPServer 8000 obtienen resultados diferentes. Al intentar ejecutar el comando mientras estaba en el directorio cgi-bin, el navegador continuó devolviendo el código de script en bruto. una vez que obtuve un nivel superior y ejecuté nuevamente el comando python -m CGIHTTPServer 8000 mi script comenzó a ejecutarse.

@ Bentley4: si aún no puede hacerlo, intente importar cgi.

#! C: \ Python34 \ python.exe -u import cgi print (“Tipo de contenido: texto / html”)

HTH

en Python3 la línea de comandos es simplemente

 python -http.server --cgi 8000 

Esto me funciona, ejecute el comando python -m CGIHTTPServer 8000 mismo nivel de menú con cgi-bin, y mueva cgi_script.py a la carpeta cgi-bin. En el tipo de navegador http: // localhost: 8000 / cgi-bin / cgi_script.py