uwsgi не распознает существующую переменную окружения - PullRequest
0 голосов
/ 30 марта 2020

Черт, у меня есть простой 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

Не могли бы вы помочь исправить это проблема?

...