¿Configurando Python en Windows / Apache?
-
19-08-2019 - |
Pregunta
Quiero obtener un Python simple "hola mundo" secuencia de comandos de la página web para ejecutarse en Windows Vista / Apache pero choca con diferentes paredes Estoy usando WAMP He instalado mod_python
y el módulo muestra, pero no estoy muy seguro de lo que se supone que debo hacer, p. http.conf (cosas como AddHandler mod_python .py o me llevan a un archivo no encontrado, o prohibido, o errores de módulo no encontrado al acceder a http: //localhost/myfolder/index.py ). Puedo hacer que mod_python.publisher
funcione, pero ¿quiero " quiero " esto / necesita esto?
¿Alguien puede ayudar?
¡Gracias!
Solución
Manténgase alejado de mod_python
. Una idea engañosa común es que mod_python
es como mod_php
, pero para python. Eso no es verdad. Wsgi es el estándar para ejecutar aplicaciones web de Python, definido por PEP 333 . Por lo tanto, use mod_wsgi
en su lugar.
O, alternativamente, use un marco web que tenga un servidor. La Cherrypy es particularmente buena. Podrá ejecutar su aplicación tanto de forma independiente como a través de mod_wsgi
.
Un ejemplo de la aplicación Hello World con cherrypy:
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
application = HelloWorld()
if __name__ == '__main__':
cherrypy.engine.start()
cherrypy.engine.block()
Muy fácil ¿eh? La ejecución de esta aplicación directamente en Python iniciará un servidor web. La configuración de mod_wsgi
hará que se ejecute dentro de apache.
Otros consejos
No NECESITA mod_python para ejecutar el código Python en la web, puede usar una programación CGI simple para ejecutar su código python, con las instrucciones en el siguiente enlace: http://www.imladris.com/Scripts/PythonForWindows.html
Eso debería brindarle algunas de las opciones de configuración que necesita para habilitar Python con CGI, y una búsqueda en Google debería brindarle una gran cantidad de otra información sobre cómo programarlo y tal.
Mod_python es útil si quieres un poco más "amigable" interfaz, o más control sobre la solicitud en sí. Puede usarlo para crear filtros de solicitud y otras cosas para el servidor Apache, y con el controlador del editor obtendrá una forma más sencilla de manejar las solicitudes de la página web a través de Python.
El controlador de editor funciona asignando URL a objetos / funciones de Python. Esto significa que puede definir una función llamada 'foo' en su archivo python, y cualquier solicitud a http: // localhost / foo llamaría a esa función automáticamente. Más información aquí: http: // www. modpython.org/live/current/doc-html/hand-pub-alg-trav.html
En cuanto a la configuración de Apache para hacer que las cosas funcionen, algo como esto debería servirle bien
<Directory /var/www/html/python/>
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
Si tiene / var / www / html / configurado como la raíz de su servidor web y tiene un archivo llamado index.py en el directorio python /, entonces cualquier solicitud a http: // localhost / python / foo debería llamar a la función foo () en index.py, o fallar con un 404 si no existe.
AddHandler mod_python .py
¿Has configurado 'PythonHandler'?
En estos días, considere usar WSGI en lugar de interfaces nativas mod-python para opciones de implementación más amplias. Ya sea a través del soporte WSGI de mod-python o, quizás mejor, mod-wsgi. (CGI a través de, por ejemplo, wsgiref también funcionará bien y es fácil de configurar en un entorno de desarrollo donde no le importa su rendimiento de basura).