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

embedded/2024/12/28 14:30:51/

问题

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.dylibReferenced from: <ABE11853-3862-3862-A992-E89D6F4B220D> /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/lightgbm/lib_lightgbm.soReason: 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.ppmy.cn/embedded/149462.html

相关文章

【ETCD】【实操篇(十二)】分布式系统中的“王者之争”:基于ETCD的Leader选举实战

分布式系统中&#xff0c;Leader选举是一个非常重要的概念。Leader选举确保系统中的某个节点&#xff08;Leader&#xff09;负责执行关键任务&#xff0c;而其他节点作为备份&#xff0c;等待Leader的失效或者任务完成后重新选举出新的Leader。通过Leader选举机制&#xff0c;…

决策树入门指南:从原理到实践

目录 1 决策树的基本原理与理论基础 1.1 基本原理与定义 1.2 决策边界特性 2 特征选择与划分准则 2.1 信息增益与信息增益比 2.2 Gini指数 3 树的生成与剪枝优化 3.1 剪枝的理论基础 3.2 预剪枝策略 3.2.1基本原理 3.2.2 常用的停止准则 3.3 后剪枝策略 3.3.1 代表…

如何在任何地方随时使用本地Jupyter Notebook无需公网IP

文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 今天就来给大家安利一套神器组合&#xff1a;通过Windows系统本地部…

Stream API 的设计融合了多个经典设计模式

Stream API 的设计融合了多个经典设计模式&#xff1a; 1. 策略模式&#xff08;Strategy Pattern&#xff09; 策略模式定义了一个算法的家族&#xff0c;将每个算法封装起来&#xff0c;并使它们可以互换。Stream API 中的每个操作&#xff08;如 filter(), map()&#xff…

Hive 部署

1 下载并安装 1.1 Hadoop安装 参考另一篇博客&#xff1a;Hadoop 部署 1.2 安装包下载 可通过下面网站下载&#xff1a; 官网&#xff1a;https://dlcdn.apache.org/hive/。清华源&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/apache/hive/。 比如下载apache-hive-4…

FIR数字滤波器设计——窗函数设计法——滤波器的时域截断

与IIR数字滤波器的设计类似&#xff0c;设计FIR数字滤波器也需要事先给出理想滤波器频率响应 H ideal ( e j ω ) H_{\text{ideal}}(e^{j\omega}) Hideal​(ejω)&#xff0c;用实际的频率响应 H ( e j ω ) H(e^{j\omega}) H(ejω)去逼近 H ideal ( e j ω ) H_{\text{ideal}}…

工业安全监测审计系统(源码+文档+部署+讲解)

本文将深入解析“工业安全监测审计系统”的项目&#xff0c;探究其架构、功能以及技术栈&#xff0c;并分享获取完整源码的途径。 系统概述 工业安全监测审计系统是一个综合性的管理平台&#xff0c;旨在提高审计和考核工作的效率和质量。系统通过首页、装置信息、装置审计记…

Rust调用C动态库

Rust调用C动态库 环境 rust: 1.83.0(2024-11-26) bindgen: 0.71.1 cmake: 3.26.41. rust bindgen bindgen 是一个能自动为 C&#xff08;或 C&#xff09;库生成 Rust 绑定的辅助库和命令行工具。C &#xff08;目前&#xff09;的支持并不完整。 也就是说&#xff0c;bind…