写给不太懂编程的朋友.
设备: 最新版os 10.11.5的mac. 系统自带的python2.7, numpy和scipy.
安装python科学计算包经常有些恶心, 因为依赖比较多. 依赖的包版本太旧会缺少feature, 太新又可能deprecated error. 更新一个包, 又有可能需要更新它的上层包. 首先摆好心态, 要细致耐心, 别急躁.
首先,一贯地,先去官网看一下安装指导 quitip官网链接
官网提供了两种方法, 一种是用不分平台, 用pip来装; 另一种是提供了一个osx平台专用的安装脚本. 简单浏览了一下一键安装脚本, 发现它是抛开系统自带的python, numpy和scipy, 完全重装了一套. 这种方法有点不负责任, 电脑里有两套python对于一个初学者来说, 简直是噩梦. 所以选择方法一, 用pip来装.安装pip
pip是什么? pip就是一个类似python的AppStore. 通过pip这个商店, 就可以直接安装python的package. 等下我们就可以用pip来安装qutip及相关依赖. pip的安装方法, 一定参考pip官网: pip官网链接 下载安装脚本get-pip.py
然后sudo -H python get-pip.py
运行安装脚本完成安装.研究依赖
仔细看下官网列举的依赖. 忽略可选的. 有如下一些:Python 2.7+ Version 3.3+ is highly recommended. Numpy 1.7+ Not tested on lower versions. Scipy 0.14+ Lower versions have missing features. Matplotlib 1.2.0+ Some plotting does not work on lower versions. Cython 0.15+ Needed for compiling some time-dependent Hamiltonians. GCC Compiler 4.2+ Needed for compiling Cython files. 我们一个个来解决. python 2.7+, osx已经自带. numpy 1.7+, osx已经自带. scipy 0.14+, 系统自带的居然是0.13, 得升级. matplotlib已有自带. cython和gcc没有,得安装. 下面我们一个个搞.
装gcc
先装gcc吧, 感觉这个比较底层.
在命令行敲gcc, 会弹出提示, 没有gcc, 得装xcode才有. 点安装, 就会从AppStore里装好.升级scipy
系统自带的有scipy, 自带的这个不能被升级. 于是方案: 重装一个新版scipy. 把系统自带的藏起来(暂时disable掉). 如果日后出现意外或者其他需求, 可以再把新装的删掉, 把系统自带的还原(enable).
sudo -H pip install scipy
安装新scipy完毕.
此时python里是有两个scipy的. 查看一下scipy版本, 发现还是系统自带的老版本. 这是因为, 系统的优先. 所以要把自带的藏起来. 系统自带的在这里:
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy
我们把它改个名, 让系统找不到就行了. 如果日后想enable, 就改名回来.
sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy.orig
ok, 再查一下scipy版本, 是新的了.装cython
sudo -H pip install cython
就好了.至此, 依赖都解决了
该安装主角了.sudo -H pip install qutip
测试安装是否正确
备注: 分清哪些是软件, 哪些是python的package. 文中提及的qutip, numpy, scipy, matplotlib都是python的package. 这些package可以通过pip来安装更新卸载. 查看package版本的方法: 在python里import xxx; print xxx.__version__