问题描述:
用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包的命名冲突即可。