Windows下Flask从.env导出环境变量失败,报错APP_SETTINGS未找到
在Windows系统中为Flask加载.env环境变量的解决办法
方法一:修正bat文件的写法
你当前的env.bat格式错误,Windows的set命令不需要加export,正确的环境变量设置格式为set 变量名=变量值。修正后的env.bat内容如下:
set SECRET_KEY=fdkjshfhjsdfdskfdsfdcbsjdkfdsdf set DEBUG=True set APP_SETTINGS=config.DevelopmentConfig set DATABASE_URL=sqlite:///db.sqlite set FLASK_APP=src set FLASK_DEBUG=1
执行该bat文件后,必须在同一个CMD窗口中运行python manage.py run——因为bat设置的环境变量仅对当前终端会话有效。
方法二:使用python-dotenv自动加载.env(推荐,跨平台)
更便捷的方式是用python-dotenv包直接读取.env文件,无需手动执行bat脚本,且Linux/Windows通用:
- 安装依赖包:
pip install python-dotenv
- 在项目根目录创建
.env文件(内容无需加set/export):
SECRET_KEY=fdkjshfhjsdfdskfdsfdcbsjdkfdsdf DEBUG=True APP_SETTINGS=config.DevelopmentConfig DATABASE_URL=sqlite:///db.sqlite FLASK_APP=src FLASK_DEBUG=1
- 在
manage.py的开头添加代码,启动时自动加载环境变量:
from dotenv import load_dotenv load_dotenv() # 加载.env文件中的配置
之后直接运行python manage.py run即可,无需手动设置环境变量。
内容的提问来源于stack exchange,提问作者Tom John
相关产品推荐
相关产品推荐

