当前位置: 首页 > article >正文

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,可以通过以下命令安装:

    /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:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安装x86_64架构的libomp
    在Rosetta 2环境下,使用Homebrew安装x86_64架构的libomp

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

    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
    

    然后重新加载配置文件:

    source ~/.bash_profile  # 或者 source ~/.zshrc
    
  3. 重新安装LightGBM
    重新安装LightGBM以确保它正确链接到新安装的libomp库:

    pip uninstall lightgbm
    pip install lightgbm
    

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


http://www.kler.cn/a/450472.html

相关文章:

  • EasyExcel停更,FastExcel接力
  • Mysql高级部分总结(二)
  • 实践KDTS-WEB从mysql迁移到kingbasev9
  • Reactor
  • 【5】C#期末复习第5套
  • Matlab个性化绘图第6期—带标记面的三维折线图
  • 如何绘制网络拓扑图?附详细分类解说和用户案例!
  • 中间件xxl-job安装
  • JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中
  • llama.cpp:PC端测试 MobileVLM -- 电脑端部署图生文大模型
  • 电商系统-产品经理
  • 【动手学轨迹预测】2.3 场景表征方法
  • 网页生成鸿蒙App
  • 深入解读数据资产化实践指南(2024年)
  • 工具学习_firmware mod kit
  • Git远程仓库的多人协作
  • msvcp140.dll丢失问题汇总,有效解决msvcp140.dll错误问题
  • 大数据之——(分布式集群式) VWare、Ubuntu、CentOs、Hadoop安装配置
  • 饮酒会给心脏带来哪些改变?
  • windows11家庭版安装docker无法识别基于wsl2的Ubuntu
  • Linux字符设备驱动开发的三种方式(分析+对比+示例)
  • Ubuntu 24.04.1 解决部分中文字符(门、径)显示错误的问题
  • 学python还是学java?哪个相对来说比较容易上手?
  • Python 面向对象编程 五(结束)组合
  • 【C++】模板与泛型编程(一):定义模板,模板参数
  • oracle: create new database