Mac的M2芯片运行lightgbm报错,其他python包可用,x86_x64架构运行

问题

复制代码
OSError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so, 0x0006): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: <ABE11853-3862-3862-A992-E89D6F4B220D> /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so
  Reason: tried: '/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/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, not in dyld cache)

解决办法

看起来你遇到的问题是由于架构不兼容导致的。你的系统是基于ARM架构的(例如Apple Silicon的M1或M2芯片),而你需要的是x86_64架构的库。以下是解决这个问题的步骤:

  1. 安装Rosetta 2

    如果你还没有安装Rosetta 2,可以通过以下命令安装:

    sh 复制代码
    /usr/sbin/softwareupdate --install-rosetta --agree-to-license
  2. 使用Rosetta 2运行终端

    你需要在Rosetta 2环境下运行终端。你可以通过以下步骤来实现:

    • 打开Finder,导航到应用程序 > 实用工具
    • 右键点击终端应用程序,选择显示简介
    • 勾选使用Rosetta打开选项。
  3. 重新安装Homebrew

    在Rosetta 2环境下重新安装Homebrew,以确保安装的包是x86_64架构的。首先,卸载现有的Homebrew:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"

然后重新安装Homebrew:

sh 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安装x86_64架构的libomp

    在Rosetta 2环境下,使用Homebrew安装x86_64架构的libomp

    sh 复制代码
    arch -x86_64 brew install libomp
  2. 设置环境变量

    确保环境变量正确设置。将以下行添加到你的shell配置文件(如~/.bash_profile~/.zshrc)中:

    sh 复制代码
    export LIBRARY_PATH=$(brew --prefix libomp)/lib:$LIBRARY_PATH
    export LD_LIBRARY_PATH=$(brew --prefix libomp)/lib:$LD_LIBRARY_PATH
    export DYLD_LIBRARY_PATH=$(brew --prefix libomp)/lib:$DYLD_LIBRARY_PATH

    然后重新加载配置文件:

    sh 复制代码
    source ~/.bash_profile  # 或者 source ~/.zshrc
  3. 重新安装LightGBM

    重新安装LightGBM以确保它正确链接到新安装的libomp库:

    sh 复制代码
    pip uninstall lightgbm
    pip install lightgbm

按照这些步骤操作后,再次运行你的Python脚本。错误应该会被解决。如果问题仍然存在,请提供更多的错误信息或输出结果,以便进一步诊断。

相关推荐
yuanManGan3 分钟前
C++入门小馆:继承
java·开发语言·c++
PythonicCC14 分钟前
Python中有序序列容器的概念及其与可变性的关系
开发语言·windows·python
GGBondlctrl28 分钟前
【Python】Python好玩的第三方库之二维码生成,操作xlsx文件,以及音频控制器
开发语言·python·第三方库·二维码生成·操作xlsx文件·操作音频文件
建筑转Java-张无忌1 小时前
在Java中,什么是checked exception(即compile-time exception、编译时异常)?
java·开发语言
FL16238631291 小时前
基于yolov11的打电话玩手机检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
python·yolo·智能手机
动能小子ohhh1 小时前
Python中的客户端和服务端交互的基本内容
开发语言·python
stevenzqzq1 小时前
kotlin 05flow -从 LiveData 迁移到 Kotlin Flow 完整教程
android·开发语言·kotlin·flow
hongjianMa1 小时前
【论文阅读】Joint Deep Modeling of Users and Items Using Reviews for Recommendation
论文阅读·python·深度学习·卷积神经网络·推荐系统·推荐算法·多模态
HelloRevit1 小时前
DXFViewer进行中 : ->封装OpenGL -> 解析DXF直线
开发语言·c++
Pocker_Spades_A1 小时前
[C语言]第一章-初识
c语言·开发语言·vscode