绝望的bug:mac m1系统使用conda安装numpy报(have ‘arm64’, need ‘x86_64’)和Error importing numpy错误

mac m1系统使用conda安装numpy报错

ImportError: dlopen(/Library/Python/3.9/site-packages/Ixml/etree.cpython-39-darwin.so, 0x0002):): tried: '/Library/Python/3.9/site-packages/lxml/etree,
s.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'arm64', need '×86_64')

搜遍全网,大家都聚焦在更改架构。

当我跟着网上的节奏更换架构,发现并不能解决问题,甚至还新增了问题,真是绝望

ImportError: Error importing numpy: you should not try to import numpy from
        its source directory; please exit the numpy source tree, and relaunch
        your python interpreter from there.

此时我的关注点重新回到了核心问题

(have ‘arm64’, need ‘x86_64’)

这究竟是啥意思?我安装的是arm版本,那为什么要用x86_64版本的?

疯狂思考🤔

在 Mac M1 系统的 Conda 环境中已经安装了为 ARM64 架构编译的 NumPy,但在运行时却提示需要 x86_64,可能是因为某些原因导致系统在执行时尝试使用 x86_64 架构的 Python 解释器。

首先想到的是环境混淆。有多个Python环境或路径配置上存在冲突,可能在 Conda 环境之外,误用了系统自带的 Python 或其他版本的 Python 解释器来运行脚本。

为了避免改改改,我采取以下简单粗暴的动作:

1、完全卸载conda

1.1 删除 Conda 目录:这些命令分别是为了移除 Miniforge、Anaconda 或 Miniconda 的目录,你只需要运行对应于你安装的发行版的命令即可。

sudo rm -rf ~/miniforge3
sudo rm -rf ~/anaconda3
sudo rm -rf ~/miniconda3

1.2 清除 Conda 初始化脚本:

  • 对于 Bash 用户,编辑 ~/.bash_profile 或 ~/.bashrc
  • 对于 Zsh 用户,编辑 ~/.zshrc
  • 打开这些文件,并删除有关 Conda 初始化的部分,这可能看起来像是:
  • export PATH=/Users/your-username/miniforge3/bin:$PATH
    
  • # >>> conda initialize >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/Users/your-username/miniforge3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    else
        if [ -f "/Users/your-username/miniforge3/etc/profile.d/conda.sh" ]; then
            . "/Users/your-username/miniforge3/etc/profile.d/conda.sh"
        else
            export PATH="/Users/your-username/miniforge3/bin:$PATH"
        fi
    fi
    unset __conda_setup
    # <<< conda initialize <<<
  • 用到的命令

  • 1)打开

    // 用如下命令打开配置文件
    open ~/.bash_profile
    // 或者,根据自己用的什么shell决定
    open ~/.zshrc
    
  • 2)编辑

    输入 i 进入编辑模式
    编辑完了以后按 ESC 出编辑模式
    输入 :w 保存文件,或者 :wq 保存文件并且退出vim
    
  • 3)保存完成后执行
  • source ~/.bash_profile
    // 或者,根据自己用的什么shell决定
    source ~/.zshrc
  • 1.3 删除所有 Conda 的备份文件和缓存:
sudo rm -rf ~/.conda
sudo rm -rf ~/.condarc
sudo rm -rf ~/.continuum

2、下载 Miniforge 安装脚本

2.1Miniforge 是一个社区驱动的 Conda 的最小化安装器,它支持多种平台包括 ARM64(适用于 Mac M1 系统)。以下步骤展示了如何安装 Miniforge 并创建支持 ARM64 的 Conda 环境:

a. 下载 Miniforge 安装脚本:

你可以从 Miniforge 的 GitHub 释放页面 下载适用于 Apple M1 的安装脚本。为 ARM64 选择名称中包含 Miniforge3-MacOSX-arm64 的安装脚本。

注意:arm64版本的miniforge的基础环境是python3.9

b. bash安装

打开下载文件所在的目录并安装,全程yes

看到Thank you...说明Miniforge3安装成功了

c.配置环境变量

发现用不了conda命令

重新配置环境变量

1)打开配置文件

// 用如下命令打开配置文件
open ~/.bash_profile
// 或者,根据自己用的什么shell决定
open ~/.zshrc

2)输入

export PATH=/Users/your-username/miniforge3/bin:$PATH

3)更新环境变量

source ~/.bash_profile
// 或者,根据自己用的什么shell决定
source ~/.zshrc

4)输入conda命令

测试使用numpy

#建立新环境,命名为“test-numpy”
conda create -n test-numpy python==3.9
#激活环境
conda activate test-numpy

查看该环境下的python3

#查看该环境下的python3
which python3

重点来了:pycharm项目中Python Interpreter选择刚创建的test-numpy环境

随便写段代码完美验证numpy不报错了💯

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值