使用xgboost包进行程序开发时,在pycharm中可以正常运行,但是使用pyinstaller打包总是出现错误,打包的exe总是有如下提示:
这个错误着实让我郁闷了几天,差点放弃了pyinstaller,甚至差点放弃了Python。通过在网上搜索,发现这个问题还是有一定代表性的。通过对告警提示的理解,应该是没有找到Xgboost 库,因此有人提出下载一个xgboost.dll放至xgboost库文件夹中。但是想想可信度不高,因为使用pycharm中是可以运行的,意味着xgboost包本身是没有问题的,而且通过文件搜索,发现xgboost.dll文件也是正常有的。此外,按照某些文章的说发,在网上下载的版本不一定就是自己安装的版本号。果然尝试替换xgboost.dll不成功,必然是xgboost和pyinstaller的打包这一过程出了问题。
最终,发现了一个完美解决该问题的贴子,先把链接粘贴如下:https://my.oschina.net/lichongcoco/blog/2997992
正如我们分析的,pyinstaller打包xgboost的时候存在问题,无法成功打包,提示错误。因此,另辟蹊径,找到本电脑安装的xgboost库,整体拷贝到项目目录中,比如我的安装到对应Python3.7的sitepackage里:
之后,在使用pyinstaller打包时,在语句中加上
--add-data=xgboost;xgboost
即可完美解决。