Mac M1配置tensorflow以及切换虚拟环境导入至Spyder

M1芯片基于Arm64架构下搭载tensorflow,现阶段只能参考苹果官方给出的意见,详情链接如下

Apple Developer Metal

Mac搭载的系统应当升级至最新版才可更容易安装,现在最新的是Monterey 12版本。

 Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第1张图片

1. 下载安装miniforge3

首先下载Macos_arm64_miniforge3,保存文件,记住下载位置,然后在终端中依次输入下列命令:

hmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh

sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate

安装路径请选择默认,应当安装在用户路径下如图:

2. 安装tensorflow

新建一个新的环境,注意,经过上述步骤的source ~/miniforge3/bin/activate命令后,当前终端terminal工作的路径已经是在miniforge3文件下,环境不再是conda路径下的base环境,所以新建的环境也是在miniforge3文件夹内,下文还会介绍如何从annaconda的环境切换到minforge3下的环境。这样使用的时候才不会混乱,虚拟环境在哪个文件夹里就切换到哪个文件夹

conda create -n py38 python==3.8 #新建基于python3.8的环境
conda create -n py39 python==3.9 #新建基于python3.9的环境

创建后请激活环境如下:

conda activate 环境名

接下来需要安装tensorflow-dependence、tensorflow-macos、tensorflow-metal,一般当前新建的环境中是没有什么包的,没有什么冲突,所以可以直接在终端输入命令安装,tensorflow 在m1中python3.8和3.9可装2.5和2.6:

conda install -c apple tensorflow-deps==2.6.0

python -m pip install tensorflow-macos
python -m pip install tensorflow-metal

 一般来说,终端会开始很顺利地安装,但是在新建的环境中,conda的环境配置包少,在新环境中安装包的时候会遇到Solving environment: failed with initial frozen solve. Retrying with flexible solve的问题,这个时候请在当前环境目录下执行如下代码,更新conda:

conda update --prefix /Users/wuyicheng/opt/anaconda3 anaconda

上述代码的路径对应于当下annaconda安装的路径,请修改并在新环境下输入运行,这个时候系统会在新环境中下载非常多的包,慢慢等候,这一步是很有必要的!如下输入y同意一直等下载完毕。

 Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第2张图片

 注意!更新完上述conda一定要再进行一次命令conda update --all,这样可以解决后续很多包出现环境初始化故障,用conda install命令安装不上的问题。

那么如果没有安装报错,现在tensorflow其实已经安装成功了,如下pip list显示结果:

Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第3张图片

 到这里tensorflow可以运行被识别

Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第4张图片

 3. miniforge3安装虚拟环境配置到单独下载的Spyder

上述步骤完成后,就可以把环境运用到pycharm中了,pycharm环境配置样式如下,前面的地址默认部分基本是一样的,按照自己的mac系统来输入:

Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第5张图片

 请一定要把python.3.9这个执行文件点击选上,否则一个文件夹选上没有用。

现在把此环境导入到我们单独下载的spyder中,我们可以spyder的系统偏好设置编译器的位置,

Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第6张图片Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第7张图片

 同理,这个路径最后文件夹里的python3.9的执行文件一定要点击上,否则配置不成功!

现在配置完环境后,spyder一般还是会报错,因为这个时候我们新安装的环境里是没有spyder-kernel这个包来支持spyder的,这个时候请按照控制台的提示安装特定版本的spyder-kernel

conda install spyder-kernel==提示版本

有的时候这里会出现上述我们提到的下载环境初始化故障的问题,Solving environment: failed with initial frozen solve. Retrying with flexible solve,那就按照上面的命令步骤将conda更新就可以了。下载完毕spyder-kernel后,spyder就可以直接调用我们在miniforge3创建的新环境。如下这个图,不同路径下有不同的虚拟环境,miniforge3中就有我们创建一般被隐藏在annaconda路径下找不到的虚拟环境:

Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第8张图片

当我们打开终端,一般默认出现的是conda路径下的base环境,这个时候如果用conda info --envs命令检查环境名,miniforge3路径下的虚拟环境我们是什么也看不到的, 这个时候必须要从conda的基本环境切换路径到miniforge3:

source ~/miniforge3/bin/activate

上述命令执行后,切换至miniforge3中的base路径,如上图所示,这个时候我们再使用命令:

conda info --envs

conda activate miniforge3中虚拟环境名字

发现就可以进入miniforge3的环境下,能够被conda info --envs命令搜寻到,进而也可以实现我们对所创建的虚拟环境的调用。其实mac单独使用spyder,尤其要调用miniforge3里的环境,会逐步有很多麻烦,笔者使用annconda中的程序无法打开spyder会报错,所以选择单独下载spyder,环境配置问题基本上在本文中得到解决。

上述方法可以针对annaconda打不开spyder情况下,不使用conda的base环境直接使用miniforge3中的虚拟环境,在mac m1架构不兼容大多程序下使用tensorflow, 也进而为打开annaconda报错无法使用spyder,单独下载spyder解决环境配置提高方案。

Mac M1配置tensorflow以及切换虚拟环境导入至Spyder_第9张图片

你可能感兴趣的:(tensorflow,macos,人工智能,python,arm)