Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免使用Django、nginx和uWSGI将环境变量放入多个位置?_Django_Nginx_Uwsgi - Fatal编程技术网

如何避免使用Django、nginx和uWSGI将环境变量放入多个位置?

如何避免使用Django、nginx和uWSGI将环境变量放入多个位置?,django,nginx,uwsgi,Django,Nginx,Uwsgi,我正在尝试配置nginx+uWSGI以服务于我的Django应用程序 当我将环境变量放入myapp\u uwsgi.ini: uid=username gid=用户名 env=DJANGO_SITE_KEY=“…” 它按预期工作 然而,我的应用程序有一些应该也可以访问我定义的环境变量 如果我将环境变量设置为/home/username/.bashrc: export DJANGO_SITE_KEY=“…” uWSGI不加载它们 我已尝试将环境变量放入一个单独的文件中: #/垃圾箱/垃圾箱 导

我正在尝试配置nginx+uWSGI以服务于我的Django应用程序

当我将环境变量放入
myapp\u uwsgi.ini

uid=username
gid=用户名
env=DJANGO_SITE_KEY=“…”
它按预期工作

然而,我的应用程序有一些应该也可以访问我定义的环境变量

如果我将环境变量设置为
/home/username/.bashrc

export DJANGO_SITE_KEY=“…”
uWSGI不加载它们

我已尝试将环境变量放入一个单独的文件中:

#/垃圾箱/垃圾箱
导出DJANGO_站点_KEY=“…”
然后从两个
调用它。bashrc

/主页/用户名/环境
myapp\u uwsgi.ini

exec-pre-app=/主页/用户名/环境
在uWSGI日志中,我看到这一行:

正在运行“/home/username/environment”(应用前)。。。
但是我的Django应用程序无法使用
os.environ
访问环境变量

我还尝试将
export
命令放入virtualenvwrapper的
preactivate
钩子,并使用uWSGI的
virtualenv=
设置,但它也不起作用(我假设只有在使用virtualenvwrapper命令时才会执行钩子,如
workon

这里是来自uWSGI开发者的:

只需将它们中的每一个(每行一个)放在表单中的文本文件中

VAR=价值

然后在uWSGI配置中

[uwsgi]
for-readline = yourfile
  env = %(_)
endfor =
这也适用于yml配置文件:

  for-readline: filename
    env: %(_)
  endfor:

另一种方法是使用配置管理系统,如或


有了它们,就可以用{{variables}为uWSGI和Django创建Jinja模板在一个位置定义。

我使用。将您的环境变量放在项目中的.env这样的文件中,然后将其加载到manage.py和wsgi.py中。不需要其他配置。uwsgi和manage.py命令将按预期工作,并且您的所有环境变量都存储在一个文件中。

对于管理命令,如何使用bash解析文本文件你的意思是解析
myapp_uwsgi.ini
?我认为这不是一个正确的方法。更改web服务器会破坏一切。不,是的,解析txt文件是正确的方法。我采用了你的方法,我正在用venv的激活脚本中的env变量解析txt文件。请注意,这些值不应该被引用,因为正在分析文件。如果您引用了它们,则在应用程序中使用它们时,必须从所有值中删除引号。使用此方法导出关键字如何?如果您使用任何需要知道特定目录和文件位置的工具,则导出环境变量非常有用。