Django公司设置.py操作系统环境获取(“X”)未获取正确的值

2024-04-26 22:12:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试访问并获取(获取)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...

注意:我已经更改了变量名和值。在

但如果你能帮忙,我很感激。在


Tags: keypy应用程序homeinitos记录环境变量
1条回答
网友
1楼 · 发布于 2024-04-26 22:12:40

你的问题当然不是你的python代码。这在我们的许多django应用程序中都能完美地工作。在

我猜您根本没有从zsh启动django服务器,因此.zshrc没有加载。标准nginx/gunicorn设置当然是这样,gunicorn作为守护进程运行,从不通过交互式命令行运行。另外,可能是您没有使用同一个用户。在

您可以通过在django应用程序的某个地方添加以下代码来验证这一点:

import os
print os.environ

顺便说一句,您也可以重新考虑通过.zshrc注入环境变量。对于简单的设置,我们通常将它们保存在.env文件中,并使用https://github.com/jpadilla/django-dotenv在django启动时读取它们。安全性方面,这与您的设置相同,但它不绑定到登录用户。在

相关问题 更多 >