Черт, у меня есть простой flask app.py вот так (упрощенно)
from flask import Flask
import os
PROJ_ROOT = os.environ['DSC_AI_ROOT']
app = Flask(__name__)
if __name__ == '__main__':
app.run(host = '0.0.0.0', port = 5001, debug = True, threaded = True)
else:# for uwsgi
application = app
, и его можно запустить так:
python app.py
без каких-либо ошибок, и DSC_AI_ ROOT был установлен в .bashr c, поэтому он существует и может быть распечатан также в i python, но когда
uwsgi --ini uwsgi.ini
с таким содержимым:
[uwsgi]
#python module to import
#protocol = uwsgi
plugins = python3
master = true
processes = 10
vacuum = true
die-on-term = true
vhost = true
base = /path/to/web/root
chdir = %d
socket = localhost:8077
chown-socket = nginx
wsgi-file = %(base)/app.py
callable = application
manage-script-name = true
logto = /var/log/uwsgi/%n.log
, затем проверьте /var/log/uwsgi/uwsgi.log,an ошибка, как это появляется
*** Operational MODE: preforking ***
Traceback (most recent call last):
File "/path/to/web/app.py", line 12, in <module>
PROJ_ROOT = os.environ['DSC_AI_ROOT']
File "/usr/lib/python3.6/os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'DSC_AI_ROOT'
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
dropping root privileges after application loading
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** uWSGI is running in multiple interpreter mode ***
Моя конфигурация:
ubuntu 16.04 64bit
python 3.6.9
uwsgi 2.0.15
Не могли бы вы помочь исправить это проблема?