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不报错了💯