使用Flask部署机器学习模型运行model.py报Numpy错误如何解决
Flask部署机器学习模型启动报错排查
问题背景
- 首次尝试使用Flask框架部署机器学习模型,参照公开部署教程完成代码编写,共创建三个独立Python文件:
model.py、server.py、request.py - 已确认本地安装过Numpy依赖
- 实际操作:打开Anaconda Prompt后输入指令运行文件时触发报错,初步判断问题来自环境配置错误或启动流程有误,需确认同类问题的解决方案
核心问题原因
当前操作存在两个明显的流程错误,是触发报错的主要原因:
- 输入命令时误将命令行自带的路径提示符
C:\Users\ryans>作为命令内容输入,这部分是终端自动展示的当前工作路径标识,不需要手动输入 - 直接输入.py文件的绝对路径运行脚本时,系统会调用.py格式默认绑定的Python解释器,大概率不会指向安装了numpy、flask等依赖的Anaconda环境,环境内的依赖无法被全局解释器识别,就会触发导入类报错。
正确操作流程
- 打开Anaconda Prompt后,先激活安装了flask、numpy及机器学习相关依赖的conda虚拟环境,执行命令
conda activate 你的虚拟环境名称,如果没有创建单独的虚拟环境,直接使用base环境即可跳过这一步 - 切换到三个代码文件的存放目录,执行命令
cd C:\Users\ryans,切换完成后终端自带的路径前缀会自动更新为对应目录 - 显式调用当前环境的Python解释器运行脚本,不要直接输入文件路径:
- 先生成/保存模型,执行
python model.py - 模型文件生成完成后启动Flask服务,执行
python server.py - 服务启动成功后,新开一个Anaconda Prompt窗口,同样激活对应环境、切换到代码目录后,执行
python request.py发送测试请求
- 先生成/保存模型,执行
补充排查方案
如果按上述流程操作后仍触发Numpy相关报错,可按以下步骤排查:
- 在当前激活的环境中执行
pip list,检查依赖列表中是否存在numpy,若缺失则执行pip install numpy完成安装 - 检查代码存放目录下是否存在自行命名为
numpy.py、flask.py的文件,这类和第三方库重名的自定义文件会覆盖官方库,导致导入失败,直接重命名这类文件即可 - 执行
where python查看当前终端调用的Python解释器路径,确认第一条路径指向正在使用的Anaconda环境目录,若指向系统独立安装的Python,说明环境激活失败,重新执行conda激活命令即可
内容的提问来源于stack exchange,提问作者ASH
相关产品推荐
相关产品推荐

