web-dev-qa-db-ja.com

Lightgbm OSError、ライブラリがロードされていません

私が単に行う場合:

import lightgbm as lgb

私は得ています

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

私はすべてが正しくインストールされているようです:

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)

GCCフォルダーに6つのフォルダーがあります。これを機能させるには、別のバージョンのGCCをインストールする必要がありますか?

enter image description here

12
LampShade

私はここで同様の問題を見つけます LightGBM
回答とコメントが役立つ場合があります。

MacでLightGBMをビルドします。

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  

次にインストールします:

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

@ecodanで述べられているように、デフォルトのコンパイラの代わりにGCCとG ++を使用するようにMacを強制する必要があるかもしれません。したがって、cmake ..でビルドする代わりに、次のことを試してください。

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 ..

自分のバージョンに合わせてバージョンを調整する。

12
demianzhang

上記の答えはすべて私にとってはうまくいきませんでした。 Macで、brewを使用してlibompをインストールした場合、問題が修正されました。参照: link

brew install libomp
12
ShellZero

MACでは、open-mpiをインストールする必要があります。

brew install open-mpi
3
Khaled

同じエラー、異なるソース:gcc 8バージョンがインストールされているようで、gcc 7が必要です。

それを最後のgcc 7バージョンに戻すことで機能しました:

brew switch gcc 7.3.0_1
2
Benoit R

Macportsを使用している場合は、brewソリューションの先頭を次のように置き換えます。

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

MacPortsがインストールされているMacOS High Sierraで、私は次のことを行いました。

  1. MacPortsを使用して_clang-5.0_をインストールする
  2. _/build_ディレクトリ内で_cmake -DCMAKE_CXX_COMPILER=clang++-mp-5.0 -DCMAKE_C_COMPILER=clang-mp-5.0 .._を実行します
  3. pythonパッケージをビルドするには、_/python_package_ディレクトリに移動し、_setup.py_スクリプトを変更します。最後に関数compile_cpp()を変更する必要があります他のOS(Macを含む)のケースをチェックします。silent_call(...)の前に、次の2行を追加します:cmake_cmd.append("-DCMAKE_CXX_COMPILER=clang++-mp-5.0") cmake_cmd.append("-DCMAKE_C_COMPILER=clang-mp-5.0")
  4. _Sudo python setup.py install_を実行します。楽しい

私はPyCharmから生成されたこのコマンドを使用しましたが、うまくいきました。

conda install -p {<= USER_HOME_DIRで置き換える>}/anaconda3 lightgbm -y

注:Brewとpipのインストールを試しましたが、Azure MLスタジオがすでに他のバージョンのLightGBMをダウンロードしているため、正しいパッケージへのアップグレードで競合を引き起こしていました。

0
Amit