Eu tive problemas ao precisar instalar o LightGBM e o XGBoost no meu MacOSX utilizando os pacotes via pip.
Uma das mensagens de erro que eu tinha era essa, que ocorria em alguns tentativas
quando tentava o import do lightgbm, e as vezes no import do xgboost.
1 2 3 |
OSError: dlopen(/usr/local/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib Referenced from: /usr/local/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so Reason: image not found |
Depois de diversas tentativas compilando e recompilando direto do código fonte, localizei uma issue fechada, que me ajudou a resolver o problema. Vou detalhar o procedimento abaixo:
Primeiro vou demonstrar a minha versão:
1 2 3 |
Version 10.13.4 Python 3.6.5 Homebrew 1.6.9 |
Eu tentei diversas vezes com o GCC 7, porém não tive sucesso, como está na issue original, em 02/maio/18 saiu a versão 8, a qual foi usada, e que resolveu o meu problema.
Primeiramente vamos atualizar o GCC:
1 2 |
brew update brew upgrade |
Caso ainda não tenha instalado, instale agora o gcc, make e o cmake:
1 2 3 |
brew install gcc brew install make brew install cmake |
Vamos agora verificar a versão do gcc:
1 2 3 4 5 |
gcc-8 --version gcc-8 (Homebrew GCC 8.1.0) 8.1.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
Vamos agora baixar o código fonte, alterar o compilador padrão criar uma pasta e executar as operações de build.
1 2 3 4 5 6 |
pip uninstall lightgbm git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM export CXX=g++-8 CC=gcc-8 mkdir build ; cd build cmake .. make -j4 |
Ao término do processo de build, teremos que realizar a instalação do pacote via pip (caso você tenha a versão 2.x e 3.x do Python, você terá que trocar o pip para pip3).
1 |
pip install --no-binary :all: lightgbm |
Vamos abrir o python, e digitar os comandos abaixo para validarmos a versão instalada.
1 2 |
import lightgbm lightgbm.<strong>version</strong> |
1 |
'2.1.1' |
Isso vai resolver o problema também o xgboost.
1 2 3 4 5 |
pip uninstall xgboost git clone --recursive https://github.com/dmlc/xgboost; cd xgboost export CXX=g++-8 CC=gcc-8 cp make/config.mk ./config.mk make -j8 |
Apos a conclusão do processo de build, vamos entrar na pasta python-package e executar o Python para instalar o pacote compilado.
1 2 |
cd python-package sudo python setup.py install |
Vamos abrir o python, e digitar os comandos abaixo para validarmos a versão instalada.
1 2 |
import xgboost print("xgboost", xgboost.<strong>version</strong>) |
Pronto agora os dois estarão funcionando no OSX.