2016-06-28 7 views
0

Я пытаюсь запустить мой flaskserver при запуске с помощью супервизора. Но я получаю сообщение об ошибке:start flask server @ startup with supervisor: FATAL Вышел слишком быстро

python_auutostart    FATAL  Exited too quickly (process log may have details) 

Это запись в моем логфайл:

Traceback (most recent call last): 
    File "run.py", line 2, in <module> 
    from app import app 
    File "/home/flaskserver/app/__init__.py", line 1, in <module> 
    from flask import Flask 
ImportError: No module named flask 

Это мой .conf:

[program:python_auutostart] 
user=nobody 
command = python run.py 
directory = /home/flaskserver/ 
autostart = true 
autorestart = true 
stderr_logfile=/etc/supervisor/long.err.log 
stdout_logfile=/etc/supervisor/long.out.log 

я могу начать свой flaskserver без проблем, если Я запустил ./run.py, но я не собираюсь работать с супервизором. Я не понимаю, почему я получил опубликованный ImportError. Может быть, некоторые могут указать мне на мою проблему здесь.

+0

May или вы должны быть в virtualenv, где установлена ​​фляга – Chathuranga

+0

Я переместил файл .conf в мой virutalenv, но я все равно получаю ту же ошибку – IIIIIIIIIIIIIIIIIIIIII

+1

Вам нужно использовать питон из virtualenv. Так что используйте что-то вроде '/ path/to/virtualenv/env/bin/python' – syntonym

ответ

2

Python, которым вы пользуетесь, является системным Python по умолчанию (вы можете проверить, что с which python, который должен отображать что-то вроде /usr/bin/python или везде, где находится ваш системный python). У этого нет доступа (по умолчанию) к библиотекам, которые установлены в виртуальной среде. Вместо этого вы должны использовать питон, специфичный для virtualenv. Вы можете сделать это, явно называя python, который должен быть расположен в /path/to/virtualenv/env/bin/python. Вы можете проверить это, активировав virtualenv и which python, которые должны вывести путь к питону virtualenv.