热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

brew安装pip_macOS安装lightgbm2.2.2踩坑记录2019.2

本文仅针对lightgbm2.2.1之后版本,之前版本教程较多,不再详述之前一直用2.1.0,折腾zsh,脑子一抽卸载了br

本文仅针对lightgbm 2.2.1之后版本,之前版本教程较多,不再详述

之前一直用2.1.0,折腾zsh,脑子一抽卸载了brew(脑子是个好东西,可惜我没有),导致原来系统lgb,xgb全炸了,重新安装lgb发现和以前的错误完全不一样,花了一天时间,终于把这个坑弄清楚了

首先安装前先看下官方github关于python的安装

Microsoft/LightGBM​github.com
a584513df60656a3294d070d2616ad01.png
63182cd051375d48feca5d1982519e05.png

这段话什么意思,英语学渣大概解释下,就是2.2.1之后的版本,都是Clang编译的,所以不需要再用gcc编译了(其实编译也能行,只不过我没注意是警告还是错误,一直以为后面的错误是安装引起的),可以直接使用pip进行安装,但是(划重点!!!)需要安装OpenMP库

也就是说,原来的编译,现在两条命令即可搞定

pip install lightgbm
brew install libomp

(关于brew的安装,也不再多说,百度不少,但是在此我还是提醒下,brew更新慢,可以通过改镜像源或取消更新来解决(我改镜像源没啥用),千万不要和我一样手贱删除,这就是我悲剧的来源)

取消更新可以参考

取消brew的自动更新 - yf9595的博客 - CSDN博客

安装好以后,import lightgbm并不会报错,开始训练模型时会有另一个报错

9ef96ca51beb976f725ab57b781f8cb4.png

具体报错如下

OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see Support for the OpenMP language

这个问题anaconda已经存在libiomp5.dylib导致的(我之前一直以为是安装的锅。。。),百度已有较为完美解决方案,不再详述,可以参考

lightgbm报错 - Jimmyzqb的博客 - CSDN博客​blog.csdn.net

(19.7.19,再来补充下吧,训练报错这个问题,又遇到了,只不过这次在jupyter里,运行到train,kernel直接挂了,没有任何报错,仅仅只提示kernel挂了,也是libiomp5引起)

最后希望无论是老鸟还是萌新,看到这篇文章都能避免这个坑,以及感谢群里为我提供帮助的大佬

-------------------------2.11补充-------------------------

由于某些不明原因,我重启卡进度条了,又重装了一次系统,泪奔ing

这次,在新系统中,使用anaconda3 5.2.0安装发现了这个报错

93bea49e250431351e194e65afb4380e.png
缺少msgpack

根据百度可以明确问题是缺少msgpack 产生的

distributed 1.21.8 requires msgpack, which is not installed.

解决方案

pip install msgpack-python
pip install msgpack

5729dc4dbacfe88e133b06ea53d8862b.png
msgpack-python已经存在,msgpack安装成功

安装完成后,重新安装lgb

ea4608f4dce5f42c64f557039d4e4a1b.png
卸载后重新安装,无问题



推荐阅读
author-avatar
新起点新娘妆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有