本文将会依照apple 发布的快照版本来安装Tensorflow。

下载快照
我们选择下载tensorflow_macos-0.1alpha3.tar.gz,因为里面已经包含虚拟环境的解决方案。 这里的虚拟环境不是虚拟机的意思,也不是指用Rosetta编译的意思。 指的是这个虚拟环境拥有自己一套Python module,与外面独立、互不相干。
建立虚拟环境并安装Tensorflow
下载后解压缩会生成一个文件夹,开启Terminal并且进入该文件夹。 执行下面的指令来制作虚拟环境以及安装Tensorflow。$ /bin/bash install_venv.sh

跑出以下结果,指示我们应该怎么设置虚拟环境。 — prompt用来指定虚拟环境内的module还有相关配置文件要放在哪里,暂且称为「虚拟环境文件夹」。 如果不想设置的话 -y 就可以了,他会创建一个新的文件夹放在当前文件夹里面。 — python用于指定要用哪一个python来做虚拟环境,这也是看各位的喜好。 请记得,虚拟环境文件夹只是放配置文件或module的地方,你还是可以在本地的任何位置使用这个虚拟环境。 综上所述,我的作法如下:$ /bin/bash install_venv.sh –python=/usr/bin/python3 -y tf24py38
为求教程方便,所以我就请它放在当前文件夹内了。 最后面的tf24py38是这个虚拟环境的名字。 此时环境设置已经做好了,但是还没启用。 我们可以通过下列指令启用$ source /where/to/tensorflow_macos/tf24py38/bin/activate# hint: 不要真的打/where/to喔!
# 那是指tensorflow_macos所在位置的意思。
如果要退出虚拟环境 :$ deactivate
为什么要使用虚拟环境?
因为module之间有相依性,Tensorflow也是。 它会利用一部分其他module的指令。 那些指令可能只存在特定版本,最新的module不一定会有,太旧的也不一定有。 然而,运行于Python上的程序可能有很多,每个程序适合的module版本都不一样,所以工程师就想出了虚拟环境这个解决方案。 让每一个环境都有独立的module。 各自安装最适合的module版本。
测试
在虚拟环境中,你会看到前面多了一个括号写着tf24py38,如下图。 恭喜你,虚拟环境以及Tensorflow都装好了,让我们打开python3看一下吧。

在使用Tensorflow前,请记得一件事。 在虚拟环境中,所有没安装在「系统文件夹」或是「虚拟环境文件夹」的 python module 都不能用。 由于tensorflow在虚拟环境下运行,所以如果想要使用在系统文件夹以外的module的话,就必须重新安装一个新的。
总结
去除教程用指令,本次安装的指令如下。$ /bin/bash install_venv.sh –python=$(which python3) -y tf24py38
$ source /where/to/tensorflow_macos/tf24py38/bin/activate
$ python3
>>> import tensorflow
眼尖的朋友会看到我改用$(which python3),这段话的意思是请用预设路径中的python3。 因为每个人的python3的位置可能有所不同,所以这样写比较泛用(general)。
备注
很高兴Apple很快地就为开发者编译了M1芯片专用的Tensorflow,让我们得以利用其强大的神经单元训练模型。 我并不是拓荒者,中文论坛及网志已经许多专业人士撰写与本文类似的教程。 然而他们大多是使用anaconda或是miniforge。 本人不喜欢anaconda家族,因为我总是没搞清楚过conda跟pip是如何分工的。 因此当我成功安装Tensorflow在原生Python时,希望可以分享我的作法给大家(其实跟Apple的官方作法一模一样),让原生Python 的中文资源越来越多。