在CentOS 6服务器上部署Flask应用程序时遇到了很多麻烦。 我知道关于这个问题还有其他一些问题,但是我还没有成功。
描述
默认的Python是Python 2.6.6
nginx版本是1.0.15
uWSGI版本是1.2.5
我的virtualenv文件夹是/home/me/dev/.venv
我的virtualenv Python版本是2.7.3(我想用uWSGI运行Python 2.7.3)
我的app.run() Python文件是/home/me/dev/runserver.py
我的文件,模块,类等在/ home / me / dev / contacts下
我试过了
这里是nginx.conf的相关部分:
server { listen 80; access_log off; # ... location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } }
这里是完整的runserver.py:
from contacts import app if __name__ == "__main__": app.run()
根据文档,我试图运行以下命令:
uwsgi -H .venv/ -s 127.0.0.1:3031 -w runserver:app
然而,我有两个问题:
uWSGI仍然在Python 2.6.6版本上运行
– 我有一个'import site' failed错误
– 我有一个ImportError: No module named flask错误,这是最有可能链接到先例的错误
我也尝试了下面的命令,从uWSGI官方网站的快速入门教程:
uwsgi --socket 127.0.0.1:3031 --file runserver.py --callable app --processes 2 -H .venv/
但我有和以前一样的确切问题。
我现在完全迷失了,我尝试了其他的命令,但是我不知道我该怎么做。
我能做什么来从我的虚拟环境运行uWSGI?
编辑 :好吧,经过几次其他的尝试,我已经设法运行我的应用程序,通过安装uWSGI在我的virtualenv并从激活的环境中运行(命令那些可能偶然发现我的post,并find一个可接受的解决scheme):
$ . .venv/bin/activate $ which uwsgi /home/me/dev/.venv/bin/uwsgi $ uwsgi -s :3031 -w runserver:app -H .venv/
我应该总是从虚拟环境中运行uwsgi吗? 有没有更干净的方法来做到这一点?
我一直安装uwsgi在我的virtualenv。 这样更清洁,如果你运行多个应用程序,你可以用多种方式安装uwsgi。
我想你是不是正确地设置你的Pythonpath,所以它不知道在哪里安装了烧瓶,因为它没有在你的virtualenvsearch它。 与您的网站文件相同。