Flask中.flaskenv设FLASK_ENV=development仍运行生产模式问题排查
Flask debug模式未开启及服务器警告问题排查方案
1. 确认依赖是否安装
Flask不会自动读取.flaskenv文件,必须安装python-dotenv包才能加载该文件的配置:
- 检查是否已安装:执行
pip list | grep python-dotenv - 未安装则执行:
pip install python-dotenv
2. 检查.flaskenv文件格式与位置
- 确保文件里的配置没有多余空格或引号,正确格式应为:
FLASK_ENV=development(不要写成FLASK_ENV="development"或FLASK_ENV = development) - 确认文件放在项目根目录,和你的Flask入口脚本(比如
app.py)在同一层级
3. 检查启动方式
- 若用
flask run启动:必须在项目根目录执行该命令,Flask才会自动加载.flaskenv - 若用
python app.py启动:需要在代码中手动加载环境变量,甚至强制开启debug:
注:Flask 2.0+版本中,from dotenv import load_dotenv import os from flask import Flask # 加载.flaskenv中的配置 load_dotenv() app = Flask(__name__) # 手动确认并开启debug if os.getenv('FLASK_ENV') == 'development': app.debug = True if __name__ == '__main__': app.run()FLASK_ENV=development本应自动开启debug,但手动启动脚本时可能需要显式设置
4. 排查环境变量覆盖问题
系统环境变量优先级高于.flaskenv中的配置,检查当前环境变量:
- Linux/macOS终端执行:
echo $FLASK_ENV - Windows命令行执行:
echo %FLASK_ENV%
如果输出不是development,说明系统环境变量覆盖了配置,先清除该变量再重新启动
关于生产服务器警告
这个警告是正常提示,Flask自带的开发服务器无论是否在development模式下,都会弹出该提示,仅用于提醒你不要在生产环境使用它,只要debug模式成功开启,无需理会这个警告
内容的提问来源于stack exchange,提问作者Jandos Dev
相关产品推荐
相关产品推荐

