Lightgbm OSError,库未加载
Lightgbm OSError, Library not loaded
如果我只是这样做:
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 才能工作?
我在这里发现了类似的问题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 所述,您可能需要强制 Mac 使用 GCC 和 G++ 而不是默认编译器。因此,与其使用 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 ..
正在调整版本以匹配您的版本。
对于使用 macports 的用户,将 brew 解决方案的开头替换为:
port install gcc7 cmake
export CXX=g++-mp-7 CC=gcc-mp-7
在安装了 MacPorts 的 MacOS High Sierra 上,我执行了以下操作:
- 使用 MacPorts
安装 clang-5.0
- 在
/build
目录中,运行
cmake -DCMAKE_CXX_COMPILER=clang++-mp-5.0 -DCMAKE_C_COMPILER=clang-mp-5.0 ..
- 要构建 python 包,请转到
/python_package
目录并修改 setup.py
脚本。
您需要在最后修改函数 compile_cpp()
以检查其他 OS(包括 Mac)的大小写。在silent_call(...)
之前添加如下两行:
cmake_cmd.append("-DCMAKE_CXX_COMPILER=clang++-mp-5.0")
cmake_cmd.append("-DCMAKE_C_COMPILER=clang-mp-5.0")
- 运行
sudo python setup.py install
。享受
在 MAC 你需要安装 open-mpi:
brew install open-mpi
同样的错误,不同的来源:好像我安装了 gcc 8 版本,它需要 gcc 7.
它通过将其切换回上一个 gcc 7 版本来工作:
brew switch gcc 7.3.0_1
以上所有答案都不适合我。
在 Mac 上,如果我使用 brew 安装了 libomp,问题就解决了:参考:link
brew install libomp
我使用了从 PyCharm 生成的这个命令,它对我有用。
conda install -p { < =替换为USER_HOME_DIR>}/anaconda3 lightgbm -y
注意:我尝试了 Brew 和 pip 安装,但它们对我不起作用,因为 Azure ML studio 已经下载了其他版本的 LightGBM,这些版本在升级到正确的包时会导致冲突。
我在 M1 MAC 上遇到了完全相同的问题。我试图通过 Jupiter notebook 导入它。此命令解决了问题:
conda install lightgbm
如果我只是这样做:
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 才能工作?
我在这里发现了类似的问题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 所述,您可能需要强制 Mac 使用 GCC 和 G++ 而不是默认编译器。因此,与其使用 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 ..
正在调整版本以匹配您的版本。
对于使用 macports 的用户,将 brew 解决方案的开头替换为:
port install gcc7 cmake
export CXX=g++-mp-7 CC=gcc-mp-7
在安装了 MacPorts 的 MacOS High Sierra 上,我执行了以下操作:
- 使用 MacPorts 安装
- 在
/build
目录中,运行cmake -DCMAKE_CXX_COMPILER=clang++-mp-5.0 -DCMAKE_C_COMPILER=clang-mp-5.0 ..
- 要构建 python 包,请转到
/python_package
目录并修改setup.py
脚本。 您需要在最后修改函数compile_cpp()
以检查其他 OS(包括 Mac)的大小写。在silent_call(...)
之前添加如下两行:cmake_cmd.append("-DCMAKE_CXX_COMPILER=clang++-mp-5.0") cmake_cmd.append("-DCMAKE_C_COMPILER=clang-mp-5.0")
- 运行
sudo python setup.py install
。享受
clang-5.0
在 MAC 你需要安装 open-mpi:
brew install open-mpi
同样的错误,不同的来源:好像我安装了 gcc 8 版本,它需要 gcc 7.
它通过将其切换回上一个 gcc 7 版本来工作:
brew switch gcc 7.3.0_1
以上所有答案都不适合我。
在 Mac 上,如果我使用 brew 安装了 libomp,问题就解决了:参考:link
brew install libomp
我使用了从 PyCharm 生成的这个命令,它对我有用。
conda install -p { < =替换为USER_HOME_DIR>}/anaconda3 lightgbm -y
注意:我尝试了 Brew 和 pip 安装,但它们对我不起作用,因为 Azure ML studio 已经下载了其他版本的 LightGBM,这些版本在升级到正确的包时会导致冲突。
我在 M1 MAC 上遇到了完全相同的问题。我试图通过 Jupiter notebook 导入它。此命令解决了问题:
conda install lightgbm