191130 記錄在32位電腦上使用Ubuntu安裝Jupyter相關(guān)的坑 #D1

這是用來(lái)記錄為了讓Scrapy、Jupyter能用,我怎樣填坑的,避免以后再入坑。

家里有臺(tái)老電腦,使用Windows7各種慢,這兩天一直在用mac跑數(shù)據(jù)有點(diǎn)心疼,遂決定廢物利用,在這臺(tái)機(jī)器上裝上Linux試試效果。

由于是32位機(jī)器(這給我?guī)?lái)了很多苦難),也幾乎沒(méi)有Linux功底,所以就安裝了有圖形界面的Ubuntu 16.04(16.04好像是系列里最后一代支持32位機(jī)的系統(tǒng))。

安裝好之后,系統(tǒng)自帶了python2.7python3.5,這又是一個(gè)坑,在python3.5下裝了很久Scrapy,中間各種出錯(cuò),后來(lái)安裝了python3.7,輕松裝上。后續(xù)安裝PyCharm,由于3.5和3.7的關(guān)系,目前仍然只能用3.5,暫時(shí)夠用就不管了。

開(kāi)始到今天要說(shuō)的重點(diǎn):Jupyter Notebook

說(shuō)到Jupyter Notebook,不得不說(shuō)這真的是特別好用的一個(gè)平臺(tái),友好的界面,交互式的方式,非常適合做一些探索性的工作。

然鵝,待我在命令行中輸入“jupyter notebook”之后,打開(kāi)的頁(yè)面是這樣的:

Chrome打開(kāi)了個(gè)白板

你沒(méi)看錯(cuò),一塊白板。網(wǎng)上查了各種方法,都沒(méi)有用,依舊是白板。當(dāng)初忘記了是在3.5的時(shí)候用pip安裝的jupyter還是3.7下面安裝的,反正后面無(wú)數(shù)次刪除重新安裝都沒(méi)有用,直到在更多選項(xiàng)中發(fā)現(xiàn)如下錯(cuò)誤,才覺(jué)得可能不是jupyter包的問(wèn)題,可能是我的Chrome瀏覽器太老了,有些js的用法是不是不一致。由于Chrome支持32位的最新的只有48,和現(xiàn)在真正最新的Chrome 70+差的有點(diǎn)多。于是決定轉(zhuǎn)戰(zhàn)Firefox看看是不是可以解決。

Chrome開(kāi)發(fā)者模式報(bào)錯(cuò)

轉(zhuǎn)戰(zhàn)Firefox第一步是通過(guò)在命令行中如下代碼生產(chǎn)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"

激動(dòng)人心的時(shí)候到來(lái)了,notebook主頁(yè)總算是打開(kāi)了。


Firefox終于打開(kāi)了notebook主頁(yè)

然而我還沒(méi)高興3秒,又跪了。新建python3文件結(jié)果出來(lái)個(gè)500,打開(kāi)也不行。網(wǎng)上搜了一些,也還是解決不了問(wèn)題??戳隋e(cuò)誤之后,發(fā)現(xiàn)和Chrome類似,一時(shí)不知道要怎么解決。


Firefox 500報(bào)錯(cuò)
報(bào)錯(cuò)2
報(bào)錯(cuò)3

覺(jué)得可能還是瀏覽器問(wèn)題,就開(kāi)始搜有沒(méi)有其他的瀏覽器可以嘗試,直接搜到了Jupyter Lab。
一頓安裝運(yùn)行之后,進(jìn)入了Jupyter Lab主界面,這次沒(méi)有太急著高興,果然又出了問(wèn)題,如下圖輸入“1+11“,同時(shí)按”Ctrl“+”Enter“按鍵,一點(diǎn)反應(yīng)都沒(méi)有。

Jupyter Lab主界面

這時(shí)候注意到界面右上角的”No Kernel“,點(diǎn)開(kāi)之后只有我的”Python 3“,想起之前看過(guò)一篇文章,說(shuō)可以在Jupyter Notebook中使用Python虛擬環(huán)境,于是乎趕快搜索并實(shí)驗(yàn)。

~$ set CONDA_FORCE_32BIT=1  #設(shè)置為32位環(huán)境
~$ conda create -n SciPython37 python=3.7  #新建一個(gè)名為SciPython37的32位虛擬環(huán)境 
~$ conda activate SciPython37 # 您如SciPython37環(huán)境 
~$ conda install ipykernel # 安裝ipykernel包到當(dāng)前的python環(huán)境中
~$ python -m ipykernel install --name SciPython37 # --name后加的參數(shù)即是在Jupyter Lab中顯示的名稱
進(jìn)入SciPython37環(huán)境

可以看到在進(jìn)入SciPython37環(huán)境之后,命令行界面有所變化,從變成"(SciPython37)",說(shuō)明已經(jīng)在虛擬環(huán)境中。這時(shí)候再看Jupyter Lab的內(nèi)核選項(xiàng)中,已經(jīng)出現(xiàn)了我們新增的新環(huán)境。這個(gè)時(shí)候仿佛已經(jīng)看到了真正勝利的曙光。

選擇Kernel中已經(jīng)包含了新增的SciPython37

這時(shí)候再運(yùn)行1+11,終于出現(xiàn)了結(jié)果,大功告成。


出現(xiàn)運(yùn)算結(jié)果

通過(guò)這次的折騰,再次發(fā)現(xiàn)遇到問(wèn)題時(shí)要不忘初心,不要忘記最開(kāi)始的目標(biāo)是什么。中間有段時(shí)間我一直在折騰PyCharm,想要解決3.7解釋器不能用的事,但是用了很長(zhǎng)時(shí)間沒(méi)有解決,后來(lái)想到對(duì)我而言Scrapy不需要用到PyCharm,其他的事情Jupyter能夠解決,就把時(shí)間轉(zhuǎn)到解決Jupyter的問(wèn)題上來(lái),而不是死磕,這期間浪費(fèi)了一些時(shí)間,好歹后面沒(méi)有再浪費(fèi)更多。

比較有幫助的文章

  1. 如何在Jupyter Notebook中使用Python虛擬環(huán)境?
  2. Jupyter Lab安裝配置及多Kernel配置
  3. 獻(xiàn)給寫(xiě)作者的 Markdown 新手指南
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容