我正在尝试访问并获取(获取)OS环境变量的值设置.py在调试应用程序时,我并没有得到该记录的值。以下是更多详细信息:
有一些重要的/秘密的密钥不能在代码中共享,所以这些密钥在操作系统环境变量中导出。每当我从linux终端或pythonshell中回显$KEY\u VAL时(管理.pyshell)它打印环境变量的正确值。在
但在调试应用程序时,它显示值为“无”。我正在使用ipdb调试器,使用以下命令打印值不会导致任何结果:
p settings.KEY_VAL
在设置.py以下是获取os env变量的语句:
^{pr2}$我在我的ubuntu系统中使用ZSH。以下是我的~/.zshrc文件:
#
# Executes commands at the start of an interactive session.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Source Prezto.
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
fi
export KEY_VAL='SOME_JUNK_VAL'
fortune | cowsay | lolcat
# Customize to your needs...
注意:我已经更改了变量名和值。在
但如果你能帮忙,我很感激。在
你的问题当然不是你的python代码。这在我们的许多django应用程序中都能完美地工作。在
我猜您根本没有从zsh启动django服务器,因此.zshrc没有加载。标准nginx/gunicorn设置当然是这样,gunicorn作为守护进程运行,从不通过交互式命令行运行。另外,可能是您没有使用同一个用户。在
您可以通过在django应用程序的某个地方添加以下代码来验证这一点:
顺便说一句,您也可以重新考虑通过.zshrc注入环境变量。对于简单的设置,我们通常将它们保存在.env文件中,并使用https://github.com/jpadilla/django-dotenv在django启动时读取它们。安全性方面,这与您的设置相同,但它不绑定到登录用户。在
相关问题 更多 >
编程相关推荐