191130 记录在32位电脑上使用Ubuntu安装Jupyter相关的坑 #D1

阿里云2000元红包!本站用户参与享受九折优惠!

这是用来记录为了让Scrapy、Jupyter能用,我怎样填坑的,避免以后再入坑。

家里有台老电脑,使用Windows7各种慢,这两天一直在用mac跑数据有点心疼,遂决定废物利用,在这台机器上装上Linux试试效果。

由于是32位机器(这给我带来了很多苦难),也几乎没有Linux功底,所以就安装了有图形界面的Ubuntu 16.04(16.04好像是系列里最后一代支持32位机的系统)。

安装好之后,系统自带了python2.7python3.5,这又是一个坑,在python3.5下装了很久Scrapy,中间各种出错,后来安装了python3.7,轻松装上。后续安装PyCharm,由于3.5和3.7的关系,目前仍然只能用3.5,暂时够用就不管了。

开始到今天要说的重点:Jupyter Notebook

说到Jupyter Notebook,不得不说这真的是特别好用的一个平台,友好的界面,交互式的方式,非常适合做一些探索性的工作。

然鹅,待我在命令行中输入“jupyter notebook”之后,打开的页面是这样的:


Chrome打开了个白板

你没看错,一块白板。网上查了各种方法,都没有用,依旧是白板。当初忘记了是在3.5的时候用pip安装的jupyter还是3.7下面安装的,反正后面无数次删除重新安装都没有用,直到在更多选项中发现如下错误,才觉得可能不是jupyter包的问题,可能是我的Chrome浏览器太老了,有些js的用法是不是不一致。由于Chrome支持32位的最新的只有48,和现在真正最新的Chrome 70+差的有点多。于是决定转战Firefox看看是不是可以解决。


Chrome开发者模式报错

转战Firefox第一步是通过在命令行中如下代码生产jupyter config文件。

~$ jupyter notebook --generate-config

第二步是在文件中插入如下代码,将jupyter notebook重定向到FireFox浏览器

import webbrowser
webbrowser.register(
    "Firefox",  #自定义名字
    None,
    webbrowser.GenericBrowser(u"/usr/bin/firefox"))#指定程序所在位置
c.NotebookApp.browser = "Firefox"

激动人心的时候到来了,notebook主页总算是打开了。


Firefox终于打开了notebook主页

然而我还没高兴3秒,又跪了。新建python3文件结果出来个500,打开也不行。网上搜了一些,也还是解决不了问题。看了错误之后,发现和Chrome类似,一时不知道要怎么解决。


Firefox 500报错

报错2

报错3

觉得可能还是浏览器问题,就开始搜有没有其他的浏览器可以尝试,直接搜到了Jupyter Lab
一顿安装运行之后,进入了Jupyter Lab主界面,这次没有太急着高兴,果然又出了问题,如下图输入“1+11“,同时按”Ctrl“+”Enter“按键,一点反应都没有。


Jupyter Lab主界面

这时候注意到界面右上角的”No Kernel“,点开之后只有我的”Python 3“,想起之前看过一篇文章,说可以在Jupyter Notebook中使用Python虚拟环境,于是乎赶快搜索并实验。

~$ set CONDA_FORCE_32BIT=1  #设置为32位环境
~$ conda create -n SciPython37 python=3.7  #新建一个名为SciPython37的32位虚拟环境 
~$ conda activate SciPython37 # 您如SciPython37环境 
~$ conda install ipykernel # 安装ipykernel包到当前的python环境中
~$ python -m ipykernel install --name SciPython37 # --name后加的参数即是在Jupyter Lab中显示的名称


进入SciPython37环境

可以看到在进入SciPython37环境之后,命令行界面有所变化,从变成”(SciPython37)”,说明已经在虚拟环境中。这时候再看Jupyter Lab的内核选项中,已经出现了我们新增的新环境。这个时候仿佛已经看到了真正胜利的曙光。


选择Kernel中已经包含了新增的SciPython37

这时候再运行1+11,终于出现了结果,大功告成。


出现运算结果

通过这次的折腾,再次发现遇到问题时要不忘初心,不要忘记最开始的目标是什么。中间有段时间我一直在折腾PyCharm,想要解决3.7解释器不能用的事,但是用了很长时间没有解决,后来想到对我而言Scrapy不需要用到PyCharm,其他的事情Jupyter能够解决,就把时间转到解决Jupyter的问题上来,而不是死磕,这期间浪费了一些时间,好歹后面没有再浪费更多。

比较有帮助的文章

  1. 如何在Jupyter Notebook中使用Python虚拟环境?
  2. Jupyter Lab安装配置及多Kernel配置
  3. 献给写作者的 Markdown 新手指南

https://www.jianshu.com/p/c2d00314415f

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论