pyinstaller打包xgboost项目,得到的可执行文件运行出错问题及解决

 更新时间:2026年01月26日 08:57:39   作者:Yang TY  
文章介绍了使用PyInstaller打包包含XGBoost项目的Python程序时遇到的错误,错误原因是PyInstaller将XGBoost的`sklearn.py`模块误认为是`scikit-learn`库,导致找不到`get_params`函数,解决方法是将`sklearn.py`重命名为`sklearn_xgb.py`,以避免命名冲突

问题描述

用pyinstaller打包xgboost项目,打包过程没有出错,但运行得到的可执行文件时

报出如下错误(直接运行python工程并不会报这个错):

super() has no attribute 'get_params', sklearn.py, line697

原因分析

经排查发现,报错原因是:

pyinstaller的包解析机制不完善,误将xgboost的sklearn.py模块当作sklearn包(即scikit-learn工具包)给封装了起来,

由于get_params是继承自scikit-learn库的一个成员函数,所以才会找不到。

解决方法

对xgboost的sklearn.py文件重命名

例如改为sklearn_xgb.py,消除sklearn包的命名冲突即可。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论