文章目录

写在前面

前面说到,m1 Mac book Air配置brew及TeX环境,使用起来十分丝滑(就是双brew环境比较麻烦),这次说说Python环境的支持与NumPy、SciPy科学计算库的安装与配置。

Python的安装(Mini-forge)

我采用了命令行安装基本版conda的方法(参考​1​​),从github网站(​​地址​​)下载mini forge的bash版本,直接:

sh Miniforge3-MacOSX-arm64.sh

就可以完成安装了,环境变量是自动导入的。

安装包的时候需要先更换镜像,采用下面的命令进行镜像更换:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --set show_channel_urls yes

然而我更换镜像之后下载依旧很慢。。不清楚为什么。

安装包的话可以选择创建虚拟环境进行安装,也可以直接安装,在此不赘述。

brew安装优化版本的NumPy及SciPy

前几天看知乎,有位大佬还专门测试了apple silicon优化的numpy版本,据他测试比直接安装的numpy快了一倍以上,我配置好brew环境之后,就迫不及待地进行numpy的安装了。安装很简单,终端运行下面的命令即可:

ibrew install numpy
ibrew install

这里使用ibrew是因为在brew网站中还没有numpy的原生版本,这里采用Rosetta转译的版本进行安装,更换完中科大镜像之后安装速度快到飞起,不行的话就​​^C​​多试几次就可以了。

Sublime的配置

使用Package Control安装anaconda和sublimerepl包,安装完之后进行以下的配置(注意我这里主要采用ibrew安装的numpy进行python编程,所以相应的目录也要修改一下):

在​​SublimeREPL.sublime-settings​​文件中加入:

{
"default_extend_env": {"PATH": "{PATH}:/usr/local/bin"}
}

文件的路径为:

m1 MBA配置python及Numpy科学计算环境_python

修改​​/Users/xxx/Library/Application Support/Sublime Text 3/Packages/SublimeREPL/config/Python​​​目录中的​​Main.sublimg-menu​​​文件,id为​​repl_python_run​​的值修改为:

"cmd": ["/usr/local/bin/python3.9", "-u", "$file_basename"],

你也可以修改为自己常用的python路径。之后在快捷键绑定文件(keyblind)输入:

[
{ "keys": ["f7"], "command": "toggle_setting", "args": {"setting": "word_wrap"} },
{ "keys": ["f5"], "caption": "SublimeREPL: Python - RUN current file", "command": "run_existing_window_command", "args":{"id": "repl_python_run","file": "config/Python/Main.sublime-menu"}}
]

使按下F5时进行REPL的python运行,按下F7进行折行切换。

另外如果感觉每次都要切换选项卡比较麻烦的话可以将窗口切换为两行显示,这样就可以在上面编辑python程序,下面进行程序的运行了。

经过这样的配置,就可以使用​​F5​​调用brew环境的python,使用原来的command+B调用conda环境的python了。

最后总结

上面一套操作下来,我的Air中已经有了4个Python环境。。。分别是:

Python版本

路径(这里显示的是原始路径,Mac设置了软链接,新系统中称为"替身")

说明

Python3.8

(默认)

/usr/bin/python3

提供torch的二进制版本,我安装了torch,但是python3.9还不能安装

Python2.7

(默认)

/usr/bin/python2

基本不用

Python3.9

(brew,Intel版本)

/usr/local/Cellar/python@3.9/

3.9.1_6/Frameworks/Python.framework/

Versions/3.9/bin/python3.9

Python最新稳定版,

brew下安装的numpy包显著提高运行效率,

但是目前还不支持pandas,

并且在jupyter- notebook中无法导入numpy包,

目前还不清楚原因

Python3.9

(mini-forge)

/Users/hep/miniforge3/bin/python

conda环境,python运行更稳定,支持pandas

这四个里面我目前主要还是使用brew下的优化版python及其包,将来brew完全支持m1后没准还要安装原生版brew的Python。。不过还是很期待的!


2021.1.14更新

m1 MBA配置python及Numpy科学计算环境_f5_02

Numpy有原生版啦(针对m1芯片优化过)!!安装上了本地编译版brew的numpy包,速度大有提升,而且占用的CPU还很小(由于没风扇,传感器温度达到了77。。),确实厉害!(亲自体验得出的结果,但是scipy还是不如intel版的brew安装的scipy速度快)安装方法是:

brew install

安装过程中可能会出现SHA256 mismatch的error,但是不是大问题,安装命令会自动从源码托管地址下载源码并本地编译,过程可能会很久,最后的原生python路径及包的安装位置在:

Python has been installed as
/opt/homebrew/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/opt/homebrew/opt/python@3.9/libexec/bin

You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/opt/homebrew/lib/python3.9/site-packages

See: https://docs.brew.sh/Homebrew-and-Python

需要添加到环境变量才能使用这个版本的python及其软件包。

之后还可以通过此方法安装原生版的scipy,ipython等包,感兴趣的话可以体验一下。
如果需要将本地编译版的python作为sublime运行程序的python,可以通过修改sublime REPL的main文件以及用户设置来实现,上面已经有写,但是这里推荐新建一个编译环境。有问题的话欢迎下方评论。

主要参考


  1. ​M1 Mac 安装numpy和pandas​​​; ​​↩︎​