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

Chaquopy加载XGBoost的JSON模型提示无此文件错误怎么解决?

加载失败原因
  • 路径传参错误:你已经通过join(dirname(__file__), "model.json")构造了指向脚本同目录模型文件的绝对路径,但调用model.load_model()时传入的是相对路径"model.json"。XGBoost的底层IO逻辑由C++实现,不会自动匹配Python脚本的存储目录,只会从安卓应用的默认工作目录查找文件,因此无法定位到模型文件。
  • 模型文件未正确打包:如果model.json没有和你的Python脚本放在同一目录下(安卓项目src/main/python的对应子目录),Chaquopy打包APK时不会自动包含该文件,运行时自然无法读取。
解决方法
  1. 修改加载路径参数,直接传入你构造好的绝对路径变量filename,修改后的代码如下:
import xgboost as xgb
from os.path import dirname, join

from xgboost.sklearn import XGBClassifier
def main ():
    filename = join(dirname(__file__), "model.json")
    model = XGBClassifier()
    # 传入完整绝对路径,不要使用相对路径
    model.load_model(filename)
    return str(model)
  1. 确认模型文件存放位置:将model.json和当前Python脚本放在同一个目录下,确保Chaquopy打包时会将该文件一同打入APK。
  2. 路径有效性验证(可选):如果修改后仍报错,可以在加载模型前增加文件读取测试代码,确认路径正确性:
with open(filename, "r", encoding="utf-8") as f:
    # 能正常读取打印内容说明路径配置正确
    print("文件读取成功,长度:", len(f.read()))

补充:如果路径问题解决后出现格式类报错,确认你导出模型的XGBoost大版本和Chaquopy中安装的XGBoost版本保持一致,避免跨版本兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:45:04