You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu+VSCode+Django环境下os.getenv无法读取.env变量求助

解决Django中os.getenv读取.env变量失败的问题

核心原因:你手动在终端执行命令时,当前shell会话没有加载到.env文件里的环境变量,VSCode的DotENV扩展仅对编辑器内置的任务、调试进程生效,无法覆盖手动打开的终端会话。以下是不用python_dotenv的解决办法:

方法1:临时加载.env到当前终端会话

在激活虚拟环境并进入项目目录后,执行以下命令加载.env文件:

source .env

注意:.env文件需放在当前执行命令的目录下(可根据实际路径调整source的文件路径),且.env里的变量格式要正确,示例:

ALLOWED_HOSTS="localhost 127.0.0.1"

这种方式仅对当前终端窗口有效,关闭终端后需重新执行。

方法2:让终端自动加载.env(持久化)

如果不想每次手动执行source,可以配置终端启动脚本自动加载项目的.env文件:

  • 若使用bash,编辑~/.bashrc文件,添加一行:
    source /absolute/path/to/your/project/.env
    
    保存后执行source ~/.bashrc使配置生效。
  • 若使用zsh,编辑~/.zshrc文件,添加同样的source命令,再执行source ~/.zshrc生效。

方法3:在settings.py中添加兜底默认值

直接修改settings.py代码,给os.getenv设置默认值,避免因变量未加载导致报错:

ALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS', 'localhost 127.0.0.1').split(' ')

这样即使环境变量没加载,Django也会使用默认的允许主机列表,不影响开发流程。

内容的提问来源于stack exchange,提问作者Арсений Зорькин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 16:57:09