Mac系统使用Docker启动Django项目时提示变量名存在意外字符报错
解决方案
报错根本原因:你直接通过shell的source命令加载.env环境变量文件时,文件第一行的127.0.0.1 192.168.2.253属于无等号的备注内容,会被shell判定为变量定义,而Shell变量名不允许包含.字符,因此触发报错。Windows环境下你大概率使用了项目配套的启动脚本、WSL或Git Bash工具,自动过滤了该无效行,因此可以正常运行。
具体可选用以下任意一种方案解决:
- 修改.env文件,在首行IP备注前添加
#将其注释,修改后内容为# 127.0.0.1 192.168.2.253,该行仅为本地hosts映射备注,注释后不会影响项目正常运行。 - 避免直接用
source命令加载.env文件:如果使用docker-compose启动项目,docker-compose会自动读取.env文件并自动过滤非键值对格式的内容,无需手动source;如果本地直接启动Django服务,可通过python-dotenv依赖包加载环境变量,该包会自动跳过非合法键值对的行,不会触发Shell语法校验。 - 若需要临时在当前Shell会话加载所有有效环境变量,可执行过滤后加载命令:
该命令仅提取.env文件中包含grep '=' .env | source /dev/stdin=的合法环境变量定义行加载,自动跳过备注内容。
内容的提问来源于stack exchange,提问作者JohnJonta
相关产品推荐
相关产品推荐

