pyinstaller打包xgboost项目,得到的可执行文件运行出错

问题描述:

用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包的命名冲突即可。

你可能感兴趣的:(工程开发,python,sklearn)