Data8 開荒記(環(huán)境配置與基本介紹)
00 前言
這是我配過的最久的一次環(huán)境,折騰了大概有五個小時吧,網(wǎng)上的資料比較零散,特此將我的經(jīng)歷記錄如下,節(jié)省后來人的時間。
01 大體介紹
官網(wǎng):data-8.github.io
資料的開源鏈接:data-8
克隆倉庫:git clone git@github.com:data-8/materials-fa22.git
簡單介紹:面向數(shù)據(jù)科學(xué)家的兩門課:Data8 和 DS100 - 知乎
資源情況:
lab?reading?slides?video?homework?project?vitamin?(fa20)
特別的,關(guān)于lab:
lab是開源的,但官網(wǎng)上的lab是配好的在線環(huán)境,我們是沒有訪問權(quán)限的。
因此需要自行配置環(huán)境,也就是下文的內(nèi)容
02 搭建環(huán)境
1. 安裝Anaconda與Jupyter Notebook,建立虛擬環(huán)境
安裝與使用說明:機器學(xué)習(xí)筆記-Anaconda與JupyterNotebook的簡介與使用_LuZhouShiLi的博客-CSDN博客_anaconda jupyter notebook
如果換源失敗則參考這篇文章:CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsi解決辦法 親測有效_weixin_49304494的博客-CSDN博客
閱讀完上述文章之后,你應(yīng)該能夠
基本了解conda與jupyter
學(xué)會新建一個python環(huán)境,并激活他,以后我們就使用你新建的環(huán)境進(jìn)行各項活動。
配置好合適的源
安裝,打開,使用jupyter notebook運行python代碼,編輯markdown
嘗試用notebook訪問課程的lab文件(如 lab01.ipynb)
效果圖:
注意我們是在Anaconda Prompt 中進(jìn)行各種操作。



tips:如果想要訪問D盤的文件,可以在cmd中輸入D:
切換到D盤,再輸入jupyter notebook
即可。
2. 安裝各種包
不出意外,當(dāng)你執(zhí)行第一行代碼,應(yīng)該會報錯

這里的ModuleNotFoundError: No module named 'otter'
告訴我們,我們?nèi)鄙倭四承┠K,在接下來的代碼中,可能還會遇到很多次。
module的安裝
一般可以嘗試直接安裝,引號里的模塊。
如果不行,則嘗試百度/谷歌這段報錯
No module named 'otter'
。如果還是不行,則百度/谷歌python + 對應(yīng)的模塊名。
下面演示datascience,otter的安裝
安裝 datascience
data-8/datascience: A Python library for introductory data science
安裝方法:pip install datascience

安裝otter
第一種:直接pip,失敗

第二種:直接貼報錯詳細(xì),失?。ü雀璧牡谝粋€結(jié)果答案是錯的)


第三種:搜索 otter 相關(guān)信息,成功

再最下面可以看到關(guān)于otter的介紹,發(fā)現(xiàn)它的全稱是otter-grader
,可以進(jìn)一步搜索otter-grader
,或者嘗試pip下載,這里進(jìn)一步搜索,發(fā)現(xiàn)確實有這樣的一個模塊

如果是谷歌,直接搜到otter-grader的官網(wǎng),點進(jìn)去,就會看到安裝說明,正解就是pip install otter-grader


題外話,從上例就可以看出有時候百度有多xx吧。如果用不了谷歌也不要緊,可以用這個搜索引擎:Searx Belgium
異常處理
如果你在cmd成功安裝了,如圖。但是在jupyter還是用不了的話,那就是內(nèi)核的選擇出了問題,請繼續(xù)閱讀。

3.配置kennel(選做)
如果遇到了jupyter無法導(dǎo)入已安裝的包的問題,則進(jìn)行本部分內(nèi)容。
kennel可以說是python內(nèi)核,不同的內(nèi)核其對應(yīng)的模塊是不一樣的,下面給出了解決方案。
創(chuàng)建一個新的kennel:【工具配置】【Jupyter】Windows下,為Jupyter創(chuàng)建新的kernel_拾夕er的博客-CSDN博客_jupyter 創(chuàng)建kernel
然后在jupyter中選擇新建的內(nèi)核就可以正常運行第一段代碼辣
效果圖(我這里新建的內(nèi)核叫NewKerne3):


03 修改test文件
你是否已經(jīng)迫不及待的想開始了?下面我們進(jìn)行data8的第一個問題并評測!
第二個代碼塊要求你輸入secret_word
,答案是secret_word = 'welcome'
第三個代碼塊便是test,運行,可能會出現(xiàn)以下報錯:

根據(jù)Python Format — Otter-Grader documentation,猜測這個報錯大意是test_file缺少定義全局變量OK_FORMAT
。

解決這個問題也很簡單,我們在lab01文件夾下找到test文件夾,修改文件q0.py
,在第一行加上OK_FORMAT = True
,保存,即可。

成功??!

但是,我們不可能一個一個去改吧…肯定要借助工具批處理,我也不知道為什么會有這個bug,不過還能接受,查閱資料,發(fā)現(xiàn)linux下一個命令可以替我們完成這樣的需求。
Shell三大利器之sed - 騰訊云開發(fā)者社區(qū)-騰訊云
學(xué)習(xí)上述命令之后,編寫以下shell腳本,大意是,給當(dāng)前文件夾的所有.py文件的第一行添加OK_FORMAT = True
。
保存后 用git bash打開即可。(對于每個測試文件夾都應(yīng)修改一次)

不出意外接下來就可以開始你的data8之旅了!
04 結(jié)語
不出意外的話,各個部分應(yīng)該是可以正常運行的了,有可能會有一些包沒安裝,那么就安裝好了,要是還有其它問題,那就谷歌/百度,借鑒前人經(jīng)驗的動手解決問題,是每一個大學(xué)生都應(yīng)具備的能力。希望你能成功配置環(huán)境,既收獲勞動的喜悅,也收獲解決問題能力。
本文肯定還有很多不完善的地方,如果你的問題沒有在此出現(xiàn),希望你能夠使用搜索引擎尋找自己的答案,如本文有錯誤或者不足,煩請讀者指出。