Mac下安装lightgbm

1.安装环境

  • 系统

    • MacOS Mojave
    • 版本10.14.2
  • Xcode
    • 10.1
$ clang -v
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin18.2.0
Thread model: posix

2.安装错误

直接使用命令:

import lightgbm as lgb

使用时直接调用:

import lightgbm as lgb

import lightgbm as lgb

然后在pycharm、notebook中使用时会报错:

OSError: dlopen(/Usrs/chao/.pyenv/versions/3.6.2/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /Usrs/chao/.../libgomp.1.dylib
Referenced from: /Usrs/chao/.pyenv/versions/3.6.2/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so
Reason: image not found

那么请先执行:这一步会卸载原来错误安装的库

pip uninstall lightgbm

3.正确安装

保证之前错误的安装已经卸载掉了,然后进行下面的操作。

1.确保homebrew安装,并已经更新

brew update
brew upgrade

2.安装cmake依赖

  • 命令行,依次执行以下命令
brew install cmake
brew install gcc@7 --without-multilib
git clone --recursive https://github.com/Microsoft/LightGBM ;
cd LightGBM
mkdir build ;
cd build cmake .. # 这一步会出错,看下方编译部分
make -j

3.编译

在执行编译cmake..的时候出现如下错误

CMake Error at /usr/local/Cellar/cmake/3.15.5/share/cmake/Modules/CMakeDetermineCCompiler.cmake:49 (message):
Could not find compiler set in environment variable CC: gcc-8.
Call Stack (most recent call first):
CMakeLists.txt:7 (PROJECT)

这个时候我们需要更换命令,注意查看自己电脑的gcc版本

cd /usr/local/bin
# 查看文件中的g++和gcc版本

我的是g++-9gcc-9版本

cmake -DCMAKE_CXX_COMPILER=g++-9 -DCMAKE_C_COMPILER=gcc-9 ..

执行结果如下

-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
// ...
-- Found OpenMP: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/ryxiong/LightGBM/build

4.构建

  • 命令执行
make -j4
  • 正常运行结果
Scanning dependencies of target lightgbm
Scanning dependencies of target _lightgbm
[ 1%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/dataset.cpp.o
[ 3%] Building CXX object CMakeFiles/lightgbm.dir/src/io/dataset.cpp.o
// ...
[ 92%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/voting_parallel_tree_learner.cpp.o
[ 93%] Building CXX object CMakeFiles/_lightgbm.dir/src/metric/metric.cpp.o
[ 95%] Building CXX object CMakeFiles/lightgbm.dir/src/network/linkers_mpi.cpp.o
[ 96%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/tree.cpp.o
[100%] Linking CXX executable ../lightgbm
[100%] Linking CXX shared library ../lib_lightgbm.so
[100%] Built target lightgbm
[100%] Built target _lightgbm
  • 并在上级目录LightGBM下生成lib_lightgbm.so*lightgbm*两个文件。
cd ..
ls

错误处理

如果出现以下错误:

/usr/local/Cellar/gcc@7/7.3.0/lib/gcc/7/gcc/x86_64-apple-darwin17.5.0/7.3.0/include-fixed/stdio.h:78:10: fatal error: _stdio.h: No such file or directory
#include <_stdio.h>
^~~~~~~~~~
compilation terminated.
  • 则在Finder里按名称匹配搜索_stdio.h,找到以
Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
  • 注释信息开头的_stdio.h,复制到以下目录(具体地址参见报错信息):
/usr/local/Cellar/gcc@7/7.3.0/lib/gcc/7/gcc/x86_64-apple-darwin17.5.0/7.3.0/incl

再重新执行第4步,然后项目构建成功。

安装lightgbm

  • 命令行执行:
cd python-package
pip install lightgbm
  • 在命令行执行验证是否安装成功:
$ python
>>> import lightgbm as lgb
>>> lgb.LGBMClassifier()
LGBMClassifier(boosting_type='gbdt', class_weight=None, colsample_bytree=1.0,
learning_rate=0.1, max_depth=-1, min_child_samples=20,
min_child_weight=0.001, min_split_gain=0.0, n_estimators=100,
n_jobs=-1, num_leaves=31, objective=None, random_state=None,
reg_alpha=0.0, reg_lambda=0.0, silent=True, subsample=1.0,
subsample_for_bin=200000, subsample_freq=1)
  • 终端使用OK,但是pycharm、notebook里还是不行,不出意外会显示:
ImportError: No module named "lightgbm"

手动配置

  • 拷贝/LightGBM/lib_lightgbm.so文件到/LightGBM/python-package/lightgbm/目录下,再将/LightGBM/python-
  • package/lightgbm整个文件夹拷贝到系统python的包目录下,如:
cp lib_lightgbm.so /Users/ricky/LightGBM/build/LightGBM/build/LightGBM/python-package/lightgbm/
  • 将lightgbm文件拷贝到Python的lib库路径下:
cp -r /Users/ricky/LightGBM/build/LightGBM/build/LightGBM/python-package/lightgbm ./

Mac下安装lightgbm的更多相关文章

  1. Mac 下安装Jenkins

    Mac 下安装Jenkins 开始 Jenkins是一个基于Java开发的一种持续集成工具,用于建工持续重复的工作,功能包括: 持续的软件版本发布/测试项目 监控外部调用执行的工作. 近期打算搭建自动 ...

  2. MAC下安装与配置MySQL

    MAC下安装与配置MySQL   MAC下安装与配置MySQL 一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL ...

  3. Mac下安装UPnP Inspector

    由于工作中需要用到UPnP Inspector这个工具,而这个工具在windows下安装非常简单,在Mac下安装却很麻烦,在此记录安装流程. 这个工具依赖于两个其他的库:Coherence(一个DLN ...

  4. Mac下安装Wireshark,双击闪退

     Mac OS X上使用Wireshark抓包(http://blog.csdn.net/phunxm/article/details/38590561) Mac下安装Wireshark /Appli ...

  5. Mac下安装zshell

    Mac 下安装zshell 什么是shell 大多数命令行用户接触最多的是Bash,因为Bash是各个版本操作系统(Linux&Mac)的默认shell. 查看当前使用的shell $ ech ...

  6. 【高可用HA】Apache (1) —— Mac下安装Apache Httpd到自定义路径(非/etc/apache2)

    Mac下安装Apache Httpd httpd版本: httpd-2.4.17 参考来源: Tomcat Clustering - A Step By Step Guide Apache HTTP ...

  7. 《OD大数据实战》mac下安装nginx+php

    一.mac安装nginx + php + php-fpm  或apache + php 1. Mac 下 Nginx.MySQL.PHP-FPM 的安装配置 2. Mac下安装LNMP(Nginx+P ...

  8. Mac下安装HBase及详解

    Mac下安装HBase及详解 1. 千篇一律的HBase简介 HBase是Hadoop的数据库, 而Hive数据库的管理工具, HBase具有分布式, 可扩展及面向列存储的特点(基于谷歌BigTabl ...

  9. 在mac下安装jdk1.7(转)

    转自:http://vela.diandian.com/post/2012-01-06/15379924 最近呢,想玩玩jdk1.7,不过mac平台下的jvm一直都是Apple自己改的,所有有些麻烦. ...

随机推荐

  1. js中过滤在输入框中过滤掉特殊表情

    在页面输入text 时,经常会出现某些特殊符号例如:❤

  2. openlayers之框选放缩DragZoom(vue项目)

    环境vue3.0项目 最初是以npm i ol -s方式安装的ol,import方式导入引用,但是实际使用的时候一直报ol is not defined,最后选择在HTML以script标签引入ol, ...

  3. iperf测试流量转发(nginx反向代理tcp/udp)

    一.准备工作 服务器1:192.168.33.102     搭建nginx服务,作为反向代理的中转站 服务器2:192.168.33.103    nginx要反向代理的服务器 服务器3:192.1 ...

  4. Codeforces1204C. Anna, Svyatoslav and Maps (贪心 + Floyd)

    题目链接:传送门 题目大意: 给出n<=100的有向图,和路径p,求p的最短子序列v,使得依次经过v中所有点的路径为p. 思路: 题意其实就是让我们求路径上的一些关键点v,对于所有的关键点:vi ...

  5. Python核心技术与实战——十八|Python并发编程之Asyncio

    我们在上一章学习了Python并发编程的一种实现方法——多线程.今天,我们趁热打铁,看看Python并发编程的另一种实现方式——Asyncio.和前面协程的那章不太一样,这节课我们更加注重原理的理解. ...

  6. tomcat CATALINA_HOME与CATALINA_BASE的区别

    区别 https://blog.csdn.net/cfydaniel/article/details/41351927 Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量) ht ...

  7. Python之常用模二(时间、序列号等等)

    一.time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon ...

  8. Python实例31[批量对目录下文件重命名]

    经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如: 修改前:[大家网]Mac OS X for Uni ...

  9. 【leetcode】Reorganize String

    题目如下: Given a string S, check if the letters can be rearranged so that two characters that are adjac ...

  10. Python 变量类型Ⅲ

    Python 元组 元组是另一个数据类型,类似于 List(列表). 元组用 () 标识.内部元素用逗号隔开.但是元组不能二次赋值,相当于只读列表. 以上实例输出结果: 以下是元组无效的,因为元组是不 ...