我尝试使用from darts. models import ExponentialSmoothing
从darts包导入预测模型,并返回以下错误:OSError: dlopen(/Users/sp/opt/anaconda3/envs/august/lib/python3.9/site-packages/lightgbm/lib_lightgbm.so, 0x0006): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib Referenced from: /Users/sp/opt/anaconda3/envs/august/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)
个
我已经看到很多人在安装LightGBM时遇到了同样的问题,并尝试了所有这些修复程序。我试过brew install libomp,我卸载并重新安装了Anaconda,我使用过不同的环境,我安装过gcc和cmake,什么都不起作用。我有一台带有M1芯片的MacBook Pro,正在使用带有Anaconda的Spyder。有人有答案吗?
我的代码,直接取自darts包站点,其输出如下:
import darts
from darts import TimeSeries
# Read a pandas DataFrame
df = pd.read_csv('/Users/sp/Documents/Skripsie/airline-passenger-traffic.csv')
# Create a TimeSeries, specifying the time and value columns
series = TimeSeries.from_dataframe(df, '1949-01', '112')
# Set aside the last 36 months as a validation series
train, val = series[:-36], series[-36:]
from darts.models import ExponentialSmoothing
Traceback (most recent call last):
File "/var/folders/51/7qn6p5813zd3dw8p2c_t3btr0000gn/T/ipykernel_68567/3838417146.py", line 1, in <module>
from darts.models import ExponentialSmoothing
File "/Users/sp/opt/anaconda3/envs/august/lib/python3.9/site-packages/darts/models/__init__.py", line 46, in <module>
from darts.models.forecasting.gradient_boosted_model import LightGBMModel
File "/Users/sp/opt/anaconda3/envs/august/lib/python3.9/site-packages/darts/models/forecasting/gradient_boosted_model.py", line 13, in <module>
import lightgbm as lgb
File "/Users/sp/opt/anaconda3/envs/august/lib/python3.9/site-packages/lightgbm/__init__.py", line 8, in <module>
from .basic import Booster, Dataset, Sequence, register_logger
File "/Users/sp/opt/anaconda3/envs/august/lib/python3.9/site-packages/lightgbm/basic.py", line 110, in <module>
_LIB = _load_lib()
File "/Users/sp/opt/anaconda3/envs/august/lib/python3.9/site-packages/lightgbm/basic.py", line 101, in _load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "/Users/sp/opt/anaconda3/envs/august/lib/python3.9/ctypes/__init__.py", line 460, in LoadLibrary
return self._dlltype(name)
File "/Users/sp/opt/anaconda3/envs/august/lib/python3.9/ctypes/__init__.py", line 382, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(/Users/sp/opt/anaconda3/envs/august/lib/python3.9/site-packages/lightgbm/lib_lightgbm.so, 0x0006): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
Referenced from: /Users/sp/opt/anaconda3/envs/august/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)```
字符串
2条答案
按热度按时间s1ag04yj1#
SJP00,
你的帖子几乎可以一字不差地出自我之手。我也经历了一个非常相似的过程。把我的头发拔出来后,这就是起作用的。TL;DR是指Dart在Apple M1计算机上与LightGBM配合使用时,需要使用conda-forge。默认conda将不起作用(但可能在未来的日期)。
阅读这一期有助于澄清情况,https://github.com/microsoft/LightGBM/issues/4843
特别是,StrikerRUS评论说:
“如果我没理解错的话,默认的conda频道不支持macOS-arm 64软件包。"
和/或
一个不同之处可能是我用的是康达而不是迷你康达?
耶!这是我的主要假设!我相信LightGBM是为arm 64架构编译的,但conda(和Python)是基于x64的,通过Rosetta 2翻译运行。因此会发生架构不匹配。
(网址:http://github.com/microsoft/lightGBM/issues/4843#issuecomment-1061332231)
在我的笔记本电脑这是一个MacBook Pro(16英寸,2021年),与苹果M1 Pro芯片,和macOS Monterey 版本12.5.1安装和以下conda设置:
康达信息
字符串
这是我最后的工作。首先创建并激活干净的python 3.9环境
型
确保将conda forge添加为一个频道(并且该频 prop 有优先级)
型
然后,同时安装所有U8 Dart和LightGBM。
型
“-c conda-forge”标志可能不是绝对必要的,但我保留了它以获得额外的冗余。
pxiryf3j2#
您应该根据documentation安装OpenMP。
可以通过以下命令完成:
字符串
这解决了我的问题,我希望它会帮助别人