web-dev-qa-db-fra.com

Lightgbm OSError, bibliothèque non chargée

Si je fais simplement:

import lightgbm as lgb

Je suis en train

python script.py 
Traceback (most recent call last):
File "script.py", line 4, in <module>
import lightgbm as lgb
File "/usr/local/lib/python2.7/site-packages/lightgbm/__init__.py", line 8, in <module>
from .basic import Booster, Dataset
File "/usr/local/lib/python2.7/site-packages/lightgbm/basic.py", line 31, in <module>
_LIB = _load_lib()
File "/usr/local/lib/python2.7/site-packages/lightgbm/basic.py", line 26, in _load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 440, in LoadLibrary
return self._dlltype(name)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 362, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(/usr/local/lib/python2.7/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/python2.7/site-packages/lightgbm/lib_lightgbm.so
Reason: image not found

Il me semble que tout est installé correctement:

python -m pip install lightgbm
Requirement already satisfied: lightgbm in /usr/local/lib/python2.7/site-packages
Requirement already satisfied: wheel in /usr/local/lib/python2.7/site-packages (from lightgbm)
Requirement already satisfied: scikit-learn in /usr/local/lib/python2.7/site-packages (from lightgbm)
Requirement already satisfied: scipy in /usr/local/lib/python2.7/site-packages (from lightgbm)
Requirement already satisfied: numpy in /usr/local/lib/python2.7/site-packages (from lightgbm)

J'ai un dossier 6 dans mon dossier GCC. Dois-je avoir besoin d'installer une autre version de GCC pour que cela fonctionne?

enter image description here

12
LampShade

Je trouve un problème similaire ici LightGBM
La réponse et le commentaire peuvent vous aider.

Créez LightGBM sur Mac:

brew install cmake  
brew install gcc --without-multilib  
git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM  
mkdir build ; cd build  
cmake ..   
make -j  

Installez ensuite:

cd ../python-packages  
Sudo python setup.py install --precompile

Comme indiqué par @ecodan, vous devrez peut-être forcer Mac à utiliser GCC et G ++ au lieu du compilateur par défaut. Donc, au lieu de construire avec cmake .., essayez:

cmake -DCMAKE_C_COMPILER=/usr/local/Cellar/gcc/6.1.0/bin/gcc-6 -DCMAKE_CXX_COMPILER=/usr/local/Cellar/gcc/6.1.0/bin/g++-6 ..

ajuster les versions en fonction des vôtres.

12
demianzhang

Toutes les réponses ci-dessus n'ont pas fonctionné pour moi. Sur Mac, si j'ai installé la libomp à l'aide de brew, le problème a été résolu: Référez-vous: lien

brew install libomp
12
ShellZero

Sur MAC, vous devez installer open-mpi:

brew install open-mpi
3
Khaled

Même erreur, source différente: il semble que j'avais la version gcc 8 installée, et elle a besoin de gcc 7.

Cela a fonctionné en le ramenant à la dernière version de gcc 7:

brew switch gcc 7.3.0_1
2
Benoit R

Pour les utilisateurs de macports, remplacez le début de la solution de brassage par:

  1. port install gcc7 cmake
  2. export CXX=g++-mp-7 CC=gcc-mp-7
1
Emre

Sur MacOS High Sierra avec MacPorts installé, j'ai fait ce qui suit:

  1. Installez clang-5.0 À l'aide de MacPorts
  2. Dans le répertoire /build, Exécutez cmake -DCMAKE_CXX_COMPILER=clang++-mp-5.0 -DCMAKE_C_COMPILER=clang-mp-5.0 ..
  3. Pour créer le package python, allez dans le répertoire /python_package Et modifiez le script setup.py. Vous devez modifier la fonction compile_cpp() au toute fin qui vérifie la casse pour d'autres OS (y compris Mac). Avant la silent_call(...), ajoutez les deux lignes suivantes: cmake_cmd.append("-DCMAKE_CXX_COMPILER=clang++-mp-5.0") cmake_cmd.append("-DCMAKE_C_COMPILER=clang-mp-5.0")
  4. Exécutez Sudo python setup.py install. Prendre plaisir
1

J'ai utilisé cette commande générée à partir de PyCharm et cela a fonctionné pour moi.

conda install -p {<= remplacer par USER_HOME_DIR>}/anaconda3 lightgbm -y

Remarque: j'ai essayé l'installation de Brew et pip, mais cela n'a pas fonctionné pour moi car Azure ML studio a déjà téléchargé d'autres versions de LightGBM qui causaient des conflits lors de la mise à niveau vers les packages corrects.

0
Amit