Windows运行Flask报No module named 'flask'错误如何解决
Windows环境Anaconda下Flask项目报
ModuleNotFoundError: No module named 'flask'解决方法 问题背景
- 已完成线性回归房价预测模型训练,通过pickle序列化保存模型,训练代码如下:
import pandas as pd df = pd.read_csv('C:\\Users\\ryans\\Desktop\\prices.csv') df.head() y = df['Value'] X = df[['Rooms', 'Distance']] from sklearn import linear_model lm = linear_model.LinearRegression() lm.fit(X, y) lm.predict([[8.2,9]]) import pickle pickle.dump(lm, open('C:\\Users\\ryans\\Desktop\\model.pkl','wb'))
- 已编写Flask Web应用代码,存放在
C:\Users\ryans\Desktop\app.py,实现前端传参调用模型返回预测结果的功能,代码如下:
from flask import Flask, request, render_template import pickle app = Flask(__name__) model = pickle.load(open('C:\\Users\\ryans\\Desktop\\model.pkl', 'rb')) @app.route('/') def home(): return render_template('index.html') @app.route('/predict',methods=['POST']) def predict(): """Grabs the input values and uses them to make prediction""" rooms = int(request.form["rooms"]) distance = int(request.form["distance"]) prediction = model.predict([[rooms, distance]]) # this returns a list e.g. [127.20488798], so pick first element [0] output = round(prediction[0], 2) return render_template('index.html', prediction_text=f'A house with {rooms} rooms and located {distance} meters from the city center has a value of ${output}') if __name__ == "__main__": app.run()
- 运行时抛出如下错误:
Traceback (most recent call last): File "C:\Users\ryans\Desktop\app.py", line 2, in <module> from flask import Flask, request, render_template ModuleNotFoundError: No module named 'flask'
已确认Flask完成安装,判断为Anaconda虚拟环境配置问题,以下是可直接落地的Windows端运行步骤。
解决步骤
1. 对齐运行环境与依赖安装环境
这个报错核心原因是运行app.py调用的Python解释器,和之前安装Flask的解释器不是同一个,按以下操作排查:
- 打开Anaconda Prompt,先执行命令查看当前默认激活环境下是否存在Flask:
conda list flask - 如果返回的列表里没有flask相关条目,直接在当前窗口执行安装命令:
conda install flask
也可以用pip安装:pip install flask,同时记得确认当前环境已经安装了pandas、scikit-learn,避免后续加载模型时报错。 - 如果执行
conda list flask能看到Flask的安装记录,说明之前把Flask装到了其他虚拟环境里,先激活安装了Flask、sklearn、pandas的对应环境,比如你的环境叫house_predict,就执行:conda activate house_predict
激活后命令行最前面的括号里会显示当前环境名,再执行一次conda list flask确认依赖存在即可。
2. 正确启动项目
- 环境激活后,先切换到app.py所在的桌面目录:
cd C:\Users\ryans\Desktop - 执行启动命令:
python app.py - 当命令行输出
* Running on http://127.0.0.1:5000时,说明服务启动成功,打开浏览器访问这个地址就能正常使用预测功能。
避坑提示
- 不要直接双击app.py文件运行,双击默认调用Windows全局Python解释器,不会走Anaconda的虚拟环境,必然出现模块缺失问题。
- 后续安装任何项目依赖,都要先确认当前命令行已经激活了跑项目的虚拟环境,否则依赖会装到别的环境里,运行时还是会报找不到模块。
- 你当前代码里写的都是Windows绝对路径,如果后续移动项目文件位置,记得同步修改模型文件、数据集文件的读取路径,避免出现文件找不到报错。
内容的提问来源于stack exchange,提问作者ASH
相关产品推荐
相关产品推荐

