You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试Flask应用时出现Numpy AttributeError问题求助

解决NumPy np.float弃用导致的AttributeError问题

问题核心

你遇到的AttributeError: module 'numpy' has no attribute 'float',是NumPy 1.20+版本弃用np.float别名导致的。你修改后仍未解决,本质原因是:你贴的是前端请求代码,真正调用np.float的逻辑在Flask服务端的/predict接口里,你改错了地方。

解决方案

1. 定位并修改后端代码

找到Flask服务中使用np.float的代码块,按两种场景替换:

  • 若仅需原生浮点数类型:直接用float替换np.float
  • 若需NumPy标量类型:用np.float64替换np.float

举个后端代码修改示例:
原错误代码片段:

import numpy as np
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/predict', methods=['POST'])
def predict():
    data = request.get_json()
    # 此处使用了已弃用的np.float
    sepal_length = np.float(data['sepal_length'])
    # 后续处理逻辑...
    return jsonify({"prediction": "setosa"})

修改后代码:

import numpy as np
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/predict', methods=['POST'])
def predict():
    data = request.get_json()
    # 替换为原生float
    sepal_length = float(data['sepal_length'])
    # 或替换为NumPy标量类型
    # sepal_length = np.float64(data['sepal_length'])
    # 后续处理逻辑...
    return jsonify({"prediction": "setosa"})

2. 第三方库兼容处理(可选)

如果是依赖的第三方库(如scikit-learn)内部调用np.float导致错误,可升级该库到兼容NumPy 1.20+的版本,或临时在Flask应用开头添加兼容代码(仅作过渡):

import numpy as np
# 临时兼容已弃用的np.float别名
np.float = float

验证步骤

  1. 修改后端代码后,重启Flask服务
  2. 重新运行你提供的客户端请求代码,确认错误消失

内容的提问来源于stack exchange,提问作者kelvin sila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:26:02