由于操作系统错误,我无法在 Mac 上运行 lightgbm:libomp.dylib'(没有此类文件)

Ped*_*lva 9 macos lightgbm

我无法在我的 MAC 上运行 lightbm。我已经尝试了找到的所有解决方案,但无法解决问题。

当我导入 lightgbm 时,出现以下 OSERROR:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
Input In [2], in <cell line: 6>()
  4 from sklearn.metrics import accuracy_score
  5 import time
----> 6 from lightgbm import LGBMClassifier
  7 from xgboost import XGBClassifier
  8 print('make classification ...')

File ~/opt/anaconda3/lib/python3.9/site-packages/lightgbm/__init__.py:8, in <module>
  2 """LightGBM, Light Gradient Boosting Machine.
  3 
  4 Contributors: https://github.com/microsoft/LightGBM/graphs/contributors.
  5 """
  6 from pathlib import Path
----> 8 from .basic import Booster, Dataset, Sequence, register_logger
  9 from .callback import early_stopping, log_evaluation, print_evaluation, record_evaluation, reset_parameter
 10 from .engine import CVBooster, cv, train

File ~/opt/anaconda3/lib/python3.9/site-packages/lightgbm/basic.py:110, in <module>
106         raise LightGBMError(lib.LGBM_GetLastError().decode('utf-8'))
107     return lib
--> 110 _LIB = _load_lib()
113 NUMERIC_TYPES = (int, float, bool)
116 def _safe_call(ret: int) -> None:

File ~/opt/anaconda3/lib/python3.9/site-packages/lightgbm/basic.py:101, in _load_lib()
 99 if len(lib_path) == 0:
100     return None
--> 101 lib = ctypes.cdll.LoadLibrary(lib_path[0])
102 lib.LGBM_GetLastError.restype = ctypes.c_char_p
103 callback = ctypes.CFUNCTYPE(None, ctypes.c_char_p)

File ~/opt/anaconda3/lib/python3.9/ctypes/__init__.py:460, in LibraryLoader.LoadLibrary(self, name)
459 def LoadLibrary(self, name):
--> 460     return self._dlltype(name)

File ~/opt/anaconda3/lib/python3.9/ctypes/__init__.py:382, in CDLL.__init__(self, name, mode, handle, use_errno, use_last_error, winmode)
379 self._FuncPtr = _FuncPtr
381 if handle is None:
--> 382     self._handle = _dlopen(self._name, mode)
383 else:
384     self._handle = handle

OSError: dlopen(/Users/pedropestana/opt/anaconda3/lib/python3.9/site-packages/lightgbm/lib_lightgbm.so, 0x0006): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /Users/pedropestana/opt/anaconda3/lib/python3.9/site-packages/lightgbm/lib_lightgbm.so
  Reason: tried: '/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/usr/local/lib/libomp.dylib' (no such file), '/usr/lib/libomp.dylib' (no such file).   
Run Code Online (Sandbox Code Playgroud)

我已经尝试重新安装必要的库来安装 lightgbm 但它仍然存在。

Ama*_*dan 16

对于Linux用户,需要glibc >= 2.14。此外,在极少数情况下,当您OSError: libgomp.so.1: cannot open shared object file: No such file or directory在导入 LightGBM 期间遇到错误时,您需要单独安装 OpenMP 运行时库(使用包管理器并搜索lib[g|i]omp执行此操作)。

对于macOS(我们为 3 个最新 macOS 版本提供滚轮)用户:

从版本 2.2.1 开始,分发轮中的库文件由Apple Clang构建(版本 2.2.1 - 2.3.1 为 Xcode_8.3.3,版本 2.3.2 - 3.3.2 为 Xcode_9.4.1,版本 2.3.2 - 3.3.2 为 Xcode_10.3)版本 4.0.0) 编译器。这意味着您不再需要安装 gcc 编译器。相反,您需要安装OpenMP库,这是使用Apple Clang编译器在系统上运行 LightGBM 所必需的。您可以通过以下命令安装OpenMPbrew install libomp库: 。

-- LightGBM Python 包文档

TL;博士:对于brew install libomp

  • 这对我不起作用。 (6认同)
  • 这对我有用。感谢您提供单行解决方案! (2认同)