Mac OSX Lion安装Python环境小结

折腾了很久,网上也找了好些个资料,现在总算是达到一个比较让人满意的状态。

目的:在 MAC OSX 10.7.2上安装Python以及科学计算的相关packages

大部分内容来自于此处

准备工作

首先要有一个干净的Lion环境,然后是Python2.7.2

 

Lion里面已经自带了Python,不过由于系统的关系,总不是最新的,所以还是要手动安装。当然了,在安装Python之前先要安装XCode,然后由于某些package需要手动编译的原因,还要安装gFortran,在网上下载对应XCode版本的就好了,这里可以下载一个编译好的适合Lion的gFortran。

这里推荐使用Homebrew,之前试过鼎鼎大名的MacPort,不过MacPort在安装一个包的时候会附带着安装所有跟这个包有关的东西,弄得不清不楚的不说,下载的时候要花很长时间,安装的时候更要花很长时间。

安装Homebrew很简单,将下面代码贴到命令行就可以了:

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

安装成功之后,Homebrew会有提示的。接下来需要修改一下系统路径,将Homebrew的路径添加到系统可以识别的路径中,修改.bash_profile(如果没有,自己用vim创建一个,放在/Users/[your_user_name]下面)

 export PATH=/usr/local/bin:$PATH

修改好之后,要重启terminal。

Python

首先也要先安装一些东西,最后的pkg-config是iPython需要的,这里先安装了也未尝不可

 brew install readline sqlite gdbm pkg-config

之后安装Python

brew install python --framework --universal

--framework参数让Python成为一个framework,原作者说这会带来好处,就这么用吧;--universial会编译一个通用的(32/64位)版本,这样适用性更广一些。 之后还需要修改一下.bash_profile

export PATH=/usr/local/share/python:$PATH

重启terminal生效。 接下来,下面的任何一个命令如果不成功,记得给权限 sudo 最后需要告诉Lion,将系统链接指向新的Python安装环境。

cd /System/Library/Frameworks/Python.framework/Versions
sudo rm Current
ln -s /usr/local/Cellar/python/2.7.2/Frameworks/Python.framework/Versions/Current

验证是否安装成功了,在terminal中输入which python,如果返回结果是/usr/local/bin/python 那么就说明成功了。 接下来安装pip

easy_install pip

pip和setuptool都是非常好的安装包的方式,选择哪个都好。

virturalenv

这个简直是太棒太棒的工具了,在安装任何包之前,请务必首先安装virtualenv,这会省去你因为Python环境损坏,而无数遍重装系统的时间。最开始的时候看教程,我就没把这东西当回事,事实证明,Python现在还不稳定,所以为了保险,请安装virtualenv。

 

virtualenv是什么呢?简而言之,就是可以虚拟环境。创建了虚拟环境之后,每个Python环境互不干扰,现阶段来说,这个是次要的,主要的是,当你每一次screw up之后,你有了一个重新来过,而不用重装系统的机会。

安装virtualenv

pip install virtualenv

有的地方说还要安装virtualenvwrapper,这个从使用上来看,还好,不装也可以。 安装好之后,使用下面语句创建自己的环境,记得首先到目标文件夹

virtualenv

其实随便起,不过为了方便还是叫成env-##之类的可以和其他文件夹区分开吧。 建立好之后就可以运行了

source /bin/activate

然后就该干嘛干嘛了 做完之后在terminal中输入

deactivate

就好了。 关于virtualenv更多内容可以参考这篇文章

Numpy, Scipy, Matplotlib,iPython and all that

这里提供两种方式安装:第一种是通过python egg安装,这种方式最省时省力,第二种方法是自己通过homebrew和pip手工安装,这种要去网站上取回源代码然后花一些编译的时间,网速允许的话,也未尝不可。

Python egg安装方法

这种方法的起源是网上流传的那个superpack脚本,作者事先编译好了Python Egg文件,然后传到dropbox里面,通过脚本进行安装,这种方式的特点是,直接暴力。下载之后什么东西都装好了,但是也跟virtualenv没什么关系了,也就是违背了我们的初衷。

 

不过我已经将superpack做好的egg文件下载好了,放到了微盘,需要的可以去微盘下载:

 

安装egg的方法:

easy_install -N -Z egg包的名称

比如

easy_install -N -Z numpy-2.0.0.dev_7297785_20111104-py2.7-macosx-10.7-x86_64.egg

此处一定要参数 N Z,如果不加的话,easy_install还是会去从网上下载的,这样也就没什么意义了。

pip安装

另一种方式通过pip安装,依此执行代码就好了

pip install numpy
pip install -e git+https://github.com/scipy/scipy#egg=scipy-dev
pip install -e git+https://github.com/matplotlib/matplotlib#egg=matplotlib-dev
pip install ipython

这里由于很多其他的包都需要scipy的dev版,所以就安装了dev版本的,matplotlib类似。 这里安装的iPython是直接在terminal中原生的,如果要安装QT环境的iPython,还需要下载诺基亚提供的qt库,http://qt.nokia.com/downloads,一定要下载library,而不是sdk

 

安装完之后,就可以用homebrew安装其他的了,依此执行下面代码安装所需文件:

brew install pyqt

然后在.bash_profile中添加如下路径

export PYTHONPATH=/usr/local/lib/python:$PYTHONPATH

然后安装剩下的所需文件

brew install zmq
pip install pyzmq
pip install pygments

用下面命令启动qt下的iPython就好了

ipython qtconsole --pylab=inline

丢人现眼之F-measure再学习

昨天硕士生开题的时候,我知道的同学在汇报的时候说用F1-score衡量分类准确性。

这个是我的授意,因为最近看论文,听讲座都看到听到F1如何的好。其实,这里就很丢人。自己仅仅是听到,但是没有去求甚解,自己根本不知道F1是啥,scikits.learn里面有,就直接拿来用了。查了一下wikipedia,才知道是咋回事。

这个再次提醒自己不能人云亦云,独立思考!

http://en.wikipedia.org/wiki/F1_score