我正在尝试配置 nginx+uWSGI 来为我的 Django 应用程序提供服务。
当我将环境变量放入myapp_uwsgi.ini
:
uid = username
gid = username
env = DJANGO_SITE_KEY="..."
它按预期工作。
但是,我的应用程序有一些管理命令 https://docs.djangoproject.com/en/dev/howto/custom-management-commands/它还应该可以访问我定义的环境变量。
如果我将环境变量设置为/home/username/.bashrc
:
export DJANGO_SITE_KEY="..."
uWSGI 不加载它们。
我尝试将环境变量放入单独的文件中:
#!/bin/sh
export DJANGO_SITE_KEY="..."
然后从两者中调用它.bashrc
:
. /home/username/environment
and myapp_uwsgi.ini
:
exec-pre-app = . /home/username/environment
在 uWSGI 日志中我看到这一行:
running ". /home/username/environment" (pre app)...
但我的 Django 应用程序无法使用以下命令访问环境变量os.environ
.
我也尝试过把export
命令到preactivate
virtualenvwrapper 的钩子并使用virtualenv =
uWSGI的设置,但它也不起作用(我假设钩子仅在使用virtualenvwrapper命令时执行,例如workon
.