mod_wsgi instead con python apache flask mod-wsgi

python - instead - wsgi apache



Flask, mod_wsgi y Apache: ImportError (2)

Estoy obteniendo esto en mis registros de error:

ImportError: Ningún módulo llamado frasco

Se ve exactamente como en Django + mod_wsgi + apache: ImportError en / No módulo llamado djproj.urls , pero probé esa solución, y parece que no funciona ... Estoy insertando correctamente la aplicación principal y la carpeta principal en el ruta del sistema, pero este error aún está por venir.

Navegar a mi página sigue mostrando la página de 500.

Más información: estoy usando el nivel libre de Amazon EC2 , con Apache en forma de httpd. Todo está instalado correctamente, estoy bastante seguro ...

Aquí están mis cosas (Nombre de la aplicación badassery y nombre de la carpeta de inicio de la aplicación hatemail - Cambio de opinión mucho):

Registro de errores

[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Target WSGI script ''/home/ec2-user/hatemail/badassery.wsgi'' cannot be loaded as Python module. [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Exception occurred processing WSGI script ''/home/ec2-user/hatemail/badassery.wsgi''. [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] Traceback (most recent call last): [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] File "/home/ec2-user/hatemail/badassery.wsgi", line 6, in <module> [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] from badassery import app as application [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] File "/home/ec2-user/hatemail/badassery.py", line 6, in <module> [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] from flask import Flask, request, session, url_for, redirect, render_template, abort, g, flash, _app_ctx_stack [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] ImportError: No module named flask [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Target WSGI script ''/home/ec2-user/hatemail/badassery.wsgi'' cannot be loaded as Python module. [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Exception occurred processing WSGI script ''/home/ec2-user/hatemail/badassery.wsgi''. [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] Traceback (most recent call last): [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] File "/home/ec2-user/hatemail/badassery.wsgi", line 6, in <module> [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] from badassery import app as application [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] File "/home/ec2-user/hatemail/badassery.py", line 6, in <module> [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] from flask import Flask, request, session, url_for, redirect, render_template, abort, g, flash, _app_ctx_stack [Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] ImportError: No module named flask

badassery.wsgi

import sys sys.path.insert(0,''/home/ec2-user/hatemail'') sys.path.insert(1,''/home/ec2-user'') from badassery import app as application

Adiciones al archivo httpd.conf

WSGISocketPrefix /var/run/wsgi <VirtualHost *:80> ServerName 54.243.61.41 DocumentRoot "/home/ec2-user/hatemail" WSGIDaemonProcess badassery user=apache group=apache processes=1 threads=5 WSGIScriptAlias / /home/ec2-user/hatemail/badassery.wsgi WSGIScriptReloading On <Directory /home/ec2-user/hatemail> WSGIProcessGroup badassery WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost>

Estructura de directorios

~ hatemail badassery.py badassery.wsgi Procfile README requirements.txt schema.sql static/ templates/ venv/bin/activate

Sí, estoy haciendo "if name == ''main'': app.run ()".

¿Como puedo solucionar este problema?


Si está implementando un virtualenv, deberá asegurarse de activarlo primero. Debe actualizar su archivo wsgi de esta manera (actualizando los valores para que coincida con su entorno):

activate_this = ''/path/to/virtualenv/bin/activate_this.py'' execfile(activate_this, dict(__file__=activate_this) import sys sys.path.insert(0, ''/path/to/flask/appname'') sys.path.insert(0,''/home/ec2-user/hatemail'') sys.path.insert(1,''/home/ec2-user'') from badassery import app as application

Si no está implementando un virtualenv, probablemente solo necesite asegurarse de que Flask esté instalado en su sistema. Si ya ha instalado setuptools , puede:

easy_install flask


Si tiene algún problema con la importación al usar wsgi_mod , asegúrese de intentar señalar explícitamente los archivos de importación que están causando problemas:

sys.path.append(''/home/foo/www/Forms'')

¡entonces importa!