2017-02-15 1 views
-1

Je cours tout le tutoriel de (https://pythonprogramming.net/creating-first-flask-web-app/) et j'ai rencontré dans les questions suivantes. Je suis actuellement en cours d'exécution du serveur apache2 et c'est le journal des erreurs.Module Flask introuvable dans le serveur Apache

[Wed Feb 15 16:57:45.115664 2017] [wsgi:error] [pid 29447:tid 140623447664384] [remote 182.55.172.115:9328] mod_wsgi (pid=29447): Target WSGI script '/var/www/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module. 
[Wed Feb 15 16:57:45.115711 2017] [wsgi:error] [pid 29447:tid 140623447664384] [remote 182.55.172.115:9328] mod_wsgi (pid=29447): Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'. 
[Wed Feb 15 16:57:45.115730 2017] [wsgi:error] [pid 29447:tid 140623447664384] [remote 182.55.172.115:9328] Traceback (most recent call last): 
[Wed Feb 15 16:57:45.115749 2017] [wsgi:error] [pid 29447:tid 140623447664384] [remote 182.55.172.115:9328] File "/var/www/FlaskApp/flaskapp.wsgi", line 12, in <module> 
[Wed Feb 15 16:57:45.115799 2017] [wsgi:error] [pid 29447:tid 140623447664384] [remote 182.55.172.115:9328]  from FlaskApp import app as application 
[Wed Feb 15 16:57:45.115819 2017] [wsgi:error] [pid 29447:tid 140623447664384] [remote 182.55.172.115:9328] ImportError: No module named FlaskApp 

Mon fichier de configuration est comme ci-dessous

<VirtualHost *:80> 
       ServerName xxx.xxx.xxx.xxx 
       ServerAdmin [email protected] 
       WSGIDaemonProcess FlaskApp python-path=/var/www/FlaskApp:/var/www/FlaskApp/FlaskApp/venv/lib/python2.7/site-packages 
       WSGIProcessGroup FlaskApp 
       WSGIScriptAlias//var/www/FlaskApp/flaskapp.wsgi 
       <Directory /var/www/FlaskApp/FlaskApp/> 
         Order allow,deny 
         Allow from all 
       </Directory> 
       Alias /static /var/www/FlaskApp/FlaskApp/static 
       <Directory /var/www/FlaskApp/FlaskApp/static/> 
         Order allow,deny 
         Allow from all 
       </Directory> 
       ErrorLog ${APACHE_LOG_DIR}/error.log 
       LogLevel warn 
       CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

Mon Flask application fichier wsgi comme ci-dessous

#!/usr/bin/python 
#import sys 
import os, sys 
import logging 
logging.basicConfig(stream=sys.stderr) 
sys.path.insert(0,"/var/www/FlaskApp") 

activate_this = '/var/www/FlaskApp/FlaskApp/venv/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 


from FlaskApp import app as application 
application.secret_key = 'gfuaskdf24432giafsd23khk' 

Et mon _init_.py comme ci-dessous

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def homepage(): 
    return "Hi there, how ya doin?" 


if __name__ == "__main__": 
    app.run() 

À peu près sûr le problème n'est pas sur init .py mais probablement sur le fichier wsgi ou sur la machine virtuelle. J'ai essayé beaucoup de manières mais en vain (mais je pourrais me tromper aussi).

Besoin d'aide de la communauté.

+0

Quel est le chemin complet du fichier '' FlaskApp/__ init __ .py''? Vos répertoires/fichiers sont-ils accessibles à l'utilisateur Apache? Indépendante, mais aussi se référer à http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html pour les meilleures pratiques de configuration de l'environnement virtuel Python avec mod_wsgi. N'utilisez pas '' python-path'' pour faire référence à l'environnement virtuel Python. –

Répondre

0

Avez-vous vérifié que votre fichier init s'appelait __init__.py? Je vois que vous le mentionnez dans votre question comme init.py. Cela pourrait être le problème le __init__.py montre python il fait partie d'un paquet et quand vous importez d'autres paquets il regardera d'abord ce dossier. Si vous ne l'avez pas nommé correctement peut-être c'est pourquoi il dit qu'il ne peut pas trouver le module dont vous avez besoin?

+0

Oui, j'ai renommé le nom de fichier en tant que _init_.py, je m'excuse pour la faute de frappe. – howardlhw

+0

Ah oui, je pense que la mise en forme de stackoverflow le rend difficile, c'est pourquoi j'ai entouré le mien dans les guillemets pour faire comme un extrait de code. Aussi dans votre fichier wsgi avez-vous essayé d'importer votre application comme ceci? importer l'application en tant qu'application' – davidejones

+0

ouais je l'ai fait et c'est ce que j'ai mis à la fin du fichier wsgi - "à partir de l'application d'importation FlaskApp en tant qu'application" . Impossible de comprendre quel est le problème – howardlhw