ipython是Python的集成工具,而ipython Notebook则是通过ipython学习Python的利器,今天尝试安装它,结果出现了很多安装期间的问题,这里记录一下。
配置
首先到github上clone下notebook的代码到本地
git clone https://github.com/ipython-books/cookbook-code.git
第一次尝试
满怀欣喜的准备启动notebook
ipython notebook
[*]
结果报错了 :anger: 其实还是可以理解的,毕竟第一次就成功的人不多。我看了一下错误,应该是少了一些Python的模块,依次逐个安装
sudo pip install xxx
必要的时候,需要在intsall后面加上–upgrade的参数来强制升级一下
第二组尝试
确实是第二组尝试,因为,在这次解决之前,已经运行了多次[*]命令来检查是否还有遗漏的模块了。
这时候启动成功了!
满怀欣喜的进入notebook本地服务的界面 http://localhost:8888/
然而,这次依然波折,点击相应的py文件,发现无法加载,页面白茫茫一片 :cry:
查了半天,发现,是因为OS X 10.11的问题
~~ 科普环节开始!~~
Apple 从10.9 开始导入kext需要签名认证后,在10.10全面启用此功能,每项置入/System/Library/Extersions/中的kext必需要经过签名认证系统才会启用此功能,然而在10.11时另外追加了System Integrity Protection (SIP)功能来保护系统档案及kext驱动避免被修改,即使是root权限也无法更改已经被系统设定的项目。
可以在cat /System/Library/Sandbox/rootless.conf
文件中查看被OS X强制锁定的文件目录,不幸的是,我们的ipython目录正在其中 :broken_heart:
|
|
由于启动SIP功能,rootless.conf在未关闭时是无法进行修改的。
而顾名思义,rootless的意思就是,即使你是root用户,也不能轻易动我! :weary:
这时候,我们请出大名鼎鼎的csrutil
工具
我们运行下csrutil status
发现,SIP默认都是开启的,好吧,我们关闭丫
csrutil disable
杯具在这时候发生了,系统提示,只能在恢复模式下运行= =,果然应该仔细看usage的(如上图)
这时候继续进入恢复模式,重启电脑,按下Alt+R
进入恢复模式,进入terminal运行上面的命令,终于搞定!
第三组尝试
这时候我们重启电脑,再运行csrutil status
,果然SIP已经被关闭成功了~ :grin:
这时候再次进入notebook,我去……还是有问题 :disappointed:
依然提示一些奇奇怪怪的信息(恕我没有保存下来),这时候解决办法是,重新安装ipyhton & jupyter
又经过一番激烈的依赖模块添加之后,我们又开始启动了
第四组尝试
此时运行,终成正果!
上一张运行中的大图,以飨观众
后记
这次安装notebook,遇到的问题确实非常多,本来一味Mac机本身会自带很多东西,结果还是因为各种包的确实和版本的不匹配出现了很多异常,好在最终都解决了,希望这个过程对大家都借鉴的意义。
另外,关于更多的ipyhton和notebook的信息,大家可以到http://nbviewer.ipython.org/去查询,把神器用起来~