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

执行Flask启动命令时报错ModuleNotFoundError: pandas.core.indexes.numeric缺失

解决Flask运行时的ModuleNotFoundError: No module named 'pandas.core.indexes.numeric'问题

问题场景

执行flask --app main run启动Flask应用时触发以下错误:

ModuleNotFoundError: No module named 'pandas.core.indexes.numeric'

但直接运行python main.py可正常执行,能正常加载pickle文件并打印Movies数据(数据类型为pandas.core.frame.DataFrame)。main.py代码如下:

from flask import Flask
import pickle
import pandas as pd

app = Flask(__name__)

with open('C:\\Users\\captain\\Desktop\\flask\\my-project\\movies.pkl', 'rb') as f:
    Movies = pickle.load(f)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

解决方案

1. 检查Python环境一致性

这是最常见的原因:flask命令调用的Python环境和直接运行python main.py的环境不一致,导致两个环境的pandas版本或安装状态不同。

  • 分别执行以下命令,对比输出的Python版本:
    python --version
    flask --version
    
  • 如果版本不一致,说明flask绑定了其他Python环境。此时可以:
    • 激活你用于运行python main.py的虚拟环境,再重新执行flask --app main run;
    • 改用python -m flask --app main run命令启动,该命令会强制使用当前终端默认的Python环境,和直接运行脚本的环境保持一致。

2. 修复pandas安装

如果环境一致但仍报错,可能是pandas的安装文件损坏:

  • 先卸载现有pandas:
    pip uninstall -y pandas
    
  • 重新安装pandas:
    pip install pandas
    

3. 重新生成pickle文件

不同版本的pandas对pickle文件的兼容性有限,若movies.pkl是用其他版本pandas生成的,可能导致加载错误:

  • 在当前Python环境中重新生成pickle文件(假设原数据为DataFrame格式):
    import pandas as pd
    # 加载原始数据(替换成你的数据来源)
    df = pd.read_csv("your_movies_data.csv")
    # 重新保存为pickle文件
    df.to_pickle('movies.pkl')
    
  • 替换原文件后,再启动Flask应用测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:45:30