我用一个简单的hello世界程序在virtualenv内部的本地主机上运行了nginx + uWSGI,但是当我用一个简单的Flask应用程序replacehello world时,出现这个错误:
File "./wsgi_configuration_module.py", line 1, in <module> from flask import Flask ImportError: No module named flask unable to load app mountpoint
这是烧瓶应用程序(wsgi_configuration_module.py):
from flask import Flask application = Flask(__name__) @application.route("/") def hello(): return "hello world" if __name__ == "__main__": application.run()
uWSGIconfiguration(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>
nginxconfiguration:
server { listen 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存储在〜/ virtual_env与Python 2.7 + nginx + uWSGI + Flask安装在一个名为basic的virtualenv。
我试图解决这个问题:
--home (-H)选项设置为我的virtualenv文件夹~/virtual_env 。 其他信息:
我哪里错了?
只需在<pythonpath>的app_conf.xml文件<pythonpath>虚拟env的path添加到<pythonpath>即可。 例如:
<pythonpath>/srv/www</pythonpath> <pythonpath>/home/user/env/lib/python2.6/site-packages</pythonpath> <module>wsgi_configuration_module</module>
-H / – home / – virtualenv选项不会扩展〜符号。 指定它为绝对path,它应该工作。
这同样适用于configfiles,所以你可以添加
path_to_virtualenv