"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é?

2 Solutions collect form web for “"ImportError: Aucun module nommé flask" – Problème avec nginx + uWSGI + Flask dans une configuration virtualenv”

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

  • psycopg2 introuvable par django après l'installation dans virtualenv
  • Comment puis-je download django-1.2 et l'utiliser sur plusieurs sites lorsque le système est par défaut 1.1?
  • Ubuntu - Supervisord et virtualenv
  • Est-ce que Virtualenv convient à un server de production?
  • Impossible d'exécuter gcc: aucun file ou directory de ce type
  • virtualenv gcc error MySQL-python
  • Essayer d'exécuter gunicorn du superviseur donne une erreur - erreur: class uri 'simple' invalide ou introuvable
  • Python3 virtualenv: ImportError: aucun module nommé 'ConfigParser'
  • Essayer d'utiliser virtualenv Django 1.4.1
  • Python virtualenv, pip et grande déconnection
  • Pourquoi httpd semble-t-il utiliser une version différente de python avec le même exécutable?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.