如何将环境变量传递给 uwsgi?

Phi*_*ill 4 python wsgi uwsgi

我在 Apache 下配置了一个 WSGI 处理程序,并且在 Apache 虚拟主机配置中定义了一些环境变量。

SetEnv APP_CONFIG "/var/lib/myapp/app.config"
SetEnv LOG_CONFIG "/var/lib/myapp/app.logging.yml"
Run Code Online (Sandbox Code Playgroud)

为了在开发中测试处理程序而无需安装和配置 Apache,我使用了uWSGI--http选项。

uwsgi --http :9090 --ini uwsgi.ini --wsgi-file wsgi.py
Run Code Online (Sandbox Code Playgroud)

wsgi.py

def application(environ, start_response):
    config_file_path = environ['APP_CONFIG']
    start_response('200 OK', [('Content-Type','text/html')])
    return ["Hello World"]
Run Code Online (Sandbox Code Playgroud)

使用 uWSGI http 服务器,如何将这些变量作为environ参数的一部分传递给我的应用程序?

我尝试在 uwsgi.ini 文件中设置环境变量:

[uwsgi]
env = APP_CONFIG="/var/lib/myapp/app.config"
Run Code Online (Sandbox Code Playgroud)

但我得到:

File "wsgi.py", line 5, in application
config_file_path = environ['APP_CONFIG']
KeyError: 'APP_CONFIG'
Run Code Online (Sandbox Code Playgroud)

aru*_*582 5

[uwsgi]
env             = RAY_REDIS_PASS=ray_pass
env             = RAY_REDIS_PORT=6380
strict          = true
chdir           = /Users/judas/projects/myapp
master-fifo     = /tmp/myapp_fifo0
master-fifo     = /tmp/myapp_fifo1
module          = myapp.wsgi:application
master          = true
vacuum          = true
need-app        = true
processes       = 4
die-on-term     = true
procname-prefix = myapp
harakiri        = 30
socket          = /tmp/myapp_uwsgi.sock
lazy-apps       = true
logger          = file:logfile=/tmp/apps.log,maxsize=2000000000
import          = postfork
Run Code Online (Sandbox Code Playgroud)