"ImportError: Aucun module nommé flask" – Problème avec nginx + uWSGI + Flask dans une configuration virtualenv

J'ai eu nginx + uWSGI en cours d'exécution sur localhost à l' intérieur d'un virtualenv avec un simple programme mondial d'hello, mais j'obtiens cette erreur lorsque je remplace le monde de Hello avec une simple application de flask:

File "./wsgi_configuration_module.py", line 1, in <module> from flask import Flask ImportError: No module named flask unable to load app mountpoint 

Voici l'application du flask (wsgi_configuration_module.py):

 from flask import Flask application = Flask(__name__) @application.route("/") def hello(): return "hello world" if __name__ == "__main__": application.run() 

uWSGI config (app_conf.xml):

 <uwsgi> <socket>127.0.0.1:9001</socket> <chdir>/srv/www/labs/application</chdir> <pythonpath>/srv/www</pythonpath> <module>wsgi_configuration_module</module> <callable>application</callable> <no-site>true</no-site> </uwsgi> 

nginx config:

 server { listn 80; server_name localhost; access_log /srv/www/labs/logs/access.log; error_log /srv/www/labs/logs/error.log; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9001; } location /static { root /srv/www/labs/public_html/static/; index index.html index.htm; } } 

virtualenv stocké dans ~ / virtual_env avec Python 2.7 + nginx + uWSGI + Flacon installé dans un virtualenv appelé basic .

Les choses que j'ai essayé de résoudre ceci:

  1. définissez l' --home (-H) sur mon dossier virtualenv ~/virtual_env lors de l'exécution de uWSGI.

Autre info:

  1. J'ai la même configuration fonctionnant en dehors d'une virtualenv. Les choses se passent mal lorsque j'essaie de reproduire la configuration dans un environnement virtuel.

Où est-ce que j'ai mal tourné?

Ajoutez simplement un path d'access à votre env virtuel à <pythonpath> dans le file app_conf.xml d'uwsgi. par exemple:

 <pythonpath>/srv/www</pythonpath> <pythonpath>/home/user/env/lib/python2.6/site-packages</pythonpath> <module>wsgi_configuration_module</module> 

l'option -H / – home / – virtualenv n'élargit pas le ~ symbole. Spécifiez le path absolu et cela devrait fonctionner.

La même chose s'applique aux configurations, donc vous pouvez append

path_to_virtualenv