gpt4 book ai didi

python - Django/Python - 无法使用 os.environ.get 获取环境变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:13 46 4
gpt4 key购买 nike

在我的 Django 项目中,我需要访问 DJANGO_DEVELOPMENT 环境变量,它告诉我它是开发服务器还是生产服务器(DigitalOcean 上的 droplet)。

我想在这个 droplet 上将 DJANGO_DEVELOPMENT 设置为 1 但它不起作用。

我在 /etc/environment 中添加了这一行:

DJANGO_DEVELOPMENT="1"

然后重新启动整个 Droplet。

然后,我试图在 settings.py 中记录这个变量:

if os.environ.get('DJANGO_DEVELOPMENT') == '1':
logger.info('DJANGO_DEVELOPMENT=="1"')
from dev_settings import *
else:
logger.info('no DJANGO_DEVELOPMENT VAR')
logger.info(os.environ.get('DJANGO_DEVELOPMENT'))
logger.info(os.environ.items())

记录这个:

2018-03-24 13:09:43,007 - MyProject.settings - INFO - no DJANGO_DEVELOPMENT VAR
2018-03-24 13:09:43,007 - MyProject.settings - INFO - None
2018-03-24 13:09:43,014 - MyProject.settings - INFO - [('LANG', 'en_US.UTF-8'), ('SUPERVISOR_SERVER_URL', 'unix:///var/run/supervisor.sock'), ('SUPERVISOR_ENABLED', '1'), ('SUPERVISOR_PROCESS_NAME', 'daphne'), ('DJANGO_SETTINGS_MODULE', 'MyProject.settings'), ('SUPERVISOR_GROUP_NAME', 'daphne'), ('PATH', '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('LC_ALL', 'en_US.UTF-8')]

但是当我 ssh 到 droplet 并手动检查变量时,它似乎已设置:

root@MyProject-v1:~# echo $DJANGO_DEVELOPMENT 
1
root@MyProject-v1:~# su - futilestudio
futilestudio@MyProject-v1:~$ echo $DJANGO_DEVELOPMENT
1
futilestudio@MyProject-v1:~$

不知道哪里出了问题,是不是bug?

最佳答案

也试试写

export DJANGO_DEVELOPMENT="1"

/etc/environment.bash_profile

关于python - Django/Python - 无法使用 os.environ.get 获取环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49465171/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com