MaxOS安装sagemath

经过多次尝试,目前适合的sagemath版本为sage-9.1-OSX_10.11.6-x86_64.app.dmg

下载后创建shell软链接

1
sudo ln -s /Applications/SageMath-9.1.app/Contents/Resources/sage/sage /usr/local/bin/sage

安装crypto库

由于是python3版本,要安装pycryptodome

由于sage9的python没有ssl模块,不能顺利安装

查询了解决方法后,需下载fix_mac_sage9.tar.gz进行修复

下载压缩包后进行解压

然后fix_mac_sage9文件夹外执行下列命令

1
sage -python -m fix_mac_sage9.fix

完成patch后下载pycryptodome

建议使用代理进行下载,方法如下:

假定已经给电脑部署了 HTTPS 以及 HTTP 代理,也有如何给终端设置全局代理来让 brew 翻墙更新,但 pip 不吃这一套,我们这次就来单独给 pip 设置翻墙。

pip pip3 有个选项,叫做

1
--proxy <proxy>       Specify a proxy in the form               [user:passwd@]proxy.server:port.

我们直接用这个命令就好了,不过这个命令需要每次在你下载包时附加,比如这样:

1
pip3 --proxy 127.0.0.1:6152 install snowlp

这太麻烦了,编辑 ~/.bashrc 文件,或者如果你使用了zsh,那么就是 ~/.zshrc ,在文末添加 alias pip3=“pip3 --proxy 127.0.0.1:6152” 这样,下次打开终端后就不用每次都输入这么长的代理选项了,记得把端口改为你自己的端口。

还有就是 pip 只支持 Https Http 代理,Socks 是不行的,为此,需安装pysocks模块

1
2
pip install pysocks
pip install -r requirements.txt --proxy='socks5://127.0.0.1:1086'

因此,我们可以

1
2
sage -pip install pysocks
sage -pip install pycryptodome --proxy='socks5://127.0.0.1:1086'

瞬间安装好_