在具有OpenMP依赖性的Mac上安装Lightgbm

时间:2017-12-05 01:37:25

标签: python python-3.x pip openmpi lightgbm

我是python的新手,想在我的macbook上安装lightgbm。我做了一个tasks/,它表示安装成功。但是,当我尝试将其导入我的笔记本时,我收到以下错误消息:

firebaseRef.database().ref('tasks/').orderByChild('uid').equalTo(u).once('value')
  .then(function(snapshot) {
      var dates = [];
      snapshot.forEach(function(child) {
          dates[dates.length] = child.val().date;
      });
      resolve(dates);
  });

lightgbm网站上的文档使用pip install lightgbm提供了不同的安装指南。我的问题是我是否需要进行brew安装?如果这就是为什么pip安装显示成功安装的原因呢?

3 个答案:

答案 0 :(得分:3)

pip只会安装lightgbm个python文件。 documentation表示lightgbm依赖于OpenMP。所以你也需要安装它。您遇到的问题是因为python无法找到OpenMP附带的所需“动态链接库”。

brew install open-mpi它应该解决问题。

旁注:作为快速测试,我以与您相同的方式安装了lightgbm,并遇到了同样的问题。但我找到libgopm.1.dylib /usr/local/opt/gcc/lib/gcc/6。将其符合所需路径并未证明是成功的。

答案 1 :(得分:0)

对于MacPorts用户:

安装必备端口:

port install cmake gcc7 openmpi-gcc7

使用pip安装LightGBM:

export CXX=g++-mp-7 CC=gcc-mp-7
pip install lightgbm --install-option=--mpi

在Python软件包安装指南中检查其他安装选项,例如--gpu--hdfshttps://github.com/Microsoft/LightGBM/tree/master/python-package

答案 2 :(得分:0)

对于Mac OS,这对我有用: https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

macOS 在macOS上,可以使用CMake和Apple Clang或gcc构建LightGBM。

Apple Clang 仅支持Apple Clang版本8.1或更高版本。

安装CMake(3.12或更高版本):

酿造cmake 安装OpenMP:

brew安装libomp 运行以下命令:

git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
mkdir build ; cd build

对于莫哈韦(10.14)

cmake 
-DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" 
-DOpenMP_C_LIB_NAMES="omp" 
-DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" 
-DOpenMP_CXX_LIB_NAMES="omp" 
-DOpenMP_omp_LIBRARY=$(brew --prefix libomp)/lib/libomp.dylib 
..

High Sierra或更早版本(<= 10.13)

cmake ..

make -j4

gcc 安装CMake(3.2或更高版本):

brew install cmake

安装gcc:

brew install gcc

运行以下命令:

git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
export CXX=g++-7 CC=gcc-7 # replace "7" with version of gcc installed on your machine
mkdir build ; cd build
cmake ..
make -j4