Estou tendo muitos problemas para implantar um aplicativo Flask em um servidor CentOS 6. Eu sei que algumas outras perguntas foram feitas sobre este problema, mas ainda não consegui.
Descrição
Padrão Python é Python 2.6.6
a versão do nginx é 1.0.15
a versão do uWSGI é 1.2.5
Minha pasta virtualenv é /home/me/dev/.venv
Minha versão virtual do Python é 2.7.3 (eu quero rodar o Python 2.7.3 com o uWSGI)
Meu arquivo% python app.run()
é /home/me/dev/runserver.py
Meus arquivos, módulos, classes, etc. estão em / home / me / dev / contacts
O que eu tentei
Aqui está a parte relevante do nginx.conf:
server {
listen 80;
access_log off;
# ...
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
}
Aqui está o runserver.py completo:
from contacts import app
if __name__ == "__main__":
app.run()
De acordo com a documentação, tentei executar o seguinte comando:
uwsgi -H .venv/ -s 127.0.0.1:3031 -w runserver:app
No entanto, tenho dois problemas:
- o uWSGI ainda roda na versão do Python 2.6.6
- Eu tenho um erro 'import site' failed
- Eu tenho um erro ImportError: No module named flask
, que provavelmente está vinculado ao erro precedente
Eu também tentei o seguinte comando, no tutorial do Quickstart no site oficial do uWSGI:
uwsgi --socket 127.0.0.1:3031 --file runserver.py --callable app --processes 2 -H .venv/
Mas tenho os mesmos problemas exatos de antes.
Estou completamente perdido no momento, tentei outros comandos, mas não consigo descobrir o que mais devo fazer.
O que eu posso fazer para executar o uWSGI em meu ambiente virtual?
Editar : Ok, depois de algumas outras tentativas, consegui executar meu aplicativo instalando o uWSGI em meu virtualenv e executando-o a partir do ambiente ativado (comandos para aqueles que podem tropeçar em minhas postagens e achei uma solução aceitável):
$ . .venv/bin/activate
$ which uwsgi
/home/me/dev/.venv/bin/uwsgi
$ uwsgi -s :3031 -w runserver:app -H .venv/
Devo sempre rodar o uwsgi no ambiente virtual? Não há uma maneira mais limpa de fazer isso?