noHup - 2015年6月
type: channel
link: http://chris.nohup.cc/2015/06/
description: This site is used to record and share the informations & useful tips during the coding and research.
items: Mac上安装Python机器学习库scikit-learn

Mac上安装Python机器学习库scikit-learn
type: item
date: 2015-06-27T09:08:00+00:00
description: Overview 因为最近需要用到一些机器学习算法，Python的scikit-learn提供很多机器学习算法实现，可以很方便地用来做实验。今天在自己的电脑上安装了scikit-learn，并在此记录了安装的步骤。 安装pip 由于scikit-learn官方给的步骤是使用pip安装，所以要先安装pip。我是用了pip官方提供的安装页面 但是没有成功。因此想使用homebrew安装pip。使用以下命令安装： sudo brew install pip 提示如下： Homebrew provides pip via: `brew install python`. However you will thenhave two Pythons installed on your Mac, so alternatively you can:sudo easy_install pip 因为我之前已经装过了Python的easy_install，因此可以直接使用easy_install安装，命令如下： sudo easy_install pip 这样就顺利地装好了pip。 安装scikit-learn 需要安装以下包：numpy scipy scikit-learn，其中前两个是scikit-learn的依赖库，选择性安装nose,一个Python下面的测试库，可以用来测试scikit-learn。命令如下： sudo pip install -U numpy scipy scikit-learn 安装成功，并显示安装的地点： numpy in /Library/Python/2.7/site-packages scipy in /Library/Python/2.7/site-packages scikit-learn in /Library/Python/2.7/site-packages 这时候运行程序，导入sklearn，很可能出现 No module named sklearn 这个错误主要是由于Python程序找不到安装好的scikit-learn，原因是可能你的电脑里装了好几个Python，但是scikit-learn没有装到你现在用的那一个里面。 设置正确的Python 首先使用如下命令查看： port select --list python 在我的电脑上结果如下： Available versions for python: none python25-apple python26-apple python27 (active) python27-apple 现在起作用的是python27，但是要注意的是，scikit-learn安装在/Library/Python/2.7/site-packages，这个目录并不是python27的目录，而是python27-apple的目录。 解决方案：可以将scikit-learn复制到python27目录相应的位置，或者将默认的Python编译器改为python27-apple。 命令如下： sudo port select --set python python27-apple 结果如下： Selecting 'python27-apple' for 'python' succeeded. 'python27-apple' is now active. 测试scikit-learn 好啦，总算成功，使用nose测一下吧。 python -c "import nose; nose.main()" -v sklearn 或者直接在Python外使用 nosetests -v sklearn 也是可以的。 测试成功，就可以开始使用scikit-learn啦！