Estoy intentando ejecutar un script frasco que consulta una base de datos SQLite y muestra una API REST sólo para el interior de la red. Va a ser servido en Windows Server 2012 con Apache 2.4 con mod_wsgi. También estoy usando Python 3.7.
El error que estoy recibiendo en el registro de error es:
File "D:/sites/cifsearch/website/web.wsgi", line 7, in <module>\r, referer:
http://IP Address/ from app.py import app as application\r, referer:
http://IP Address/ ModuleNotFoundError: No module named 'app'\r, referer: http://IP Address/
web.wsgi está en el mismo directorio que app.py
Esto es lo que he escrito en web.wsgi. He copiado y pegado esto por lo que pude encontrar en Google como estoy todavía muy nuevo en esto.
import sys
import logging
logging.basicConfig (stream=sys.stderr)
sys.path.insert(0,'/')
from app.py import app as application
También le comenté a cabo:
if __name__ == "__main__":
app.run()
en app.py según este sitio: https://flask.palletsprojects.com/en/1.1.x/deploying/mod_wsgi/ . Pero no creo que la solicitud está consiguiendo incluso tan lejos. Estoy sospechando, probablemente relacionado ruta o los permisos?
Su aplicación no está configurado como un paquete, por lo que la importación en su código wsgi que la da ModuleNotFoundError
.
Poner su aplicación en un directorio llamado por ejemplo, myapp
y añadir un __init__.py
archivo en el directorio que contiene
from .app import app
para que sea un paquete.
La estructura de directorios debe tener este aspecto:
web.wsgi
myapp/
app.py
__init__.py
Luego cambia de import
línea en el archivo de wsgi
from myapp import app as application