Anaconda苦银、Jupyter啸胧、Kernel與No module named XXX

案例再現(xiàn)

小藍(lán)開始學(xué)習(xí)machine learning啦,各種框架各種模型看起來(lái)超酷幔虏,就想快點(diǎn)拿過來(lái)玩一玩纺念,預(yù)測(cè)個(gè)房?jī)r(jià)走勢(shì)、手寫數(shù)字什么的想括。但是各種環(huán)境的安裝和相互依賴是個(gè)大問題陷谱,不小心就手殘裝廢了,只能刪檔重開XD∩冢現(xiàn)在烟逊,Anaconda橫空出世,這都不是事兒铺根,趕緊把Anaconda這黃金大錘掄起來(lái)宪躯。

下載、安裝位迂、環(huán)境變量設(shè)置访雪,conda -V檢查一下详瑞,最新版anaconda3,一次點(diǎn)亮臣缀,安全炫酷坝橡,感覺自己棒棒的!開整肝陪!

等等驳庭,聽老人家說(shuō)過,新手得先搞個(gè)虛擬環(huán)境氯窍,隨便玩饲常,玩廢了刪掉,開新的狼讨。So Coooool贝淤!虛擬環(huán)境裝起來(lái)!conda create -n env_name python=2政供、source activate env_name播聪,命令行開頭出現(xiàn)的(env_name)在歡迎我來(lái)到玩家國(guó)度,放開了玩布隔!

剛學(xué)了文本分詞离陶,那我就不客氣了,先來(lái)一套詞云開開眼衅檀。不由分說(shuō)招刨,運(yùn)轉(zhuǎn)靈巧纖細(xì)的手指,小藍(lán)用jupyter notebook熟練的在虛擬環(huán)境下打開了Jupyter notebook哀军,新建一個(gè)沉眶,說(shuō)是要選kernel,python2還是python3杉适,當(dāng)然是趕時(shí)髦選python3啦(這里埋個(gè)坑)谎倔。

中文的文本分詞需要安裝jieba庫(kù),那就來(lái)一套猿推!conda install -c conda-forge jieba片习,下載順利,安裝蹬叭。怎么最后冒了段提示:

usage: conda [-h] [-V] command ...
conda: error: argument command: invalid choice: '/Users/usr_name/anaconda3/envs/ml-py2/bin/conda' (choose from 'info', 'help', 'list', 'search', 'create', 'install', 'update', 'upgrade', 'remove', 'uninstall', 'config', 'clean', 'package')

什么意思毯侦?小藍(lán)估摸著是安裝失敗了,去notebook里面import一下具垫,No module named jieba,沒毛病试幽,conda不太好使筝蚕。換pip卦碾!接著又是一頓猛操作,pip install jieba起宽,下載安裝successfully洲胖,簡(jiǎn)直崇拜自己。來(lái)import一下坯沪,No module named jieba绿映,蛤?腐晾!不可能叉弦!小藍(lán)立刻在虛擬環(huán)境中打開python交互界面,import jieba成功了藻糖,就說(shuō)嘛淹冰,肯定是Jupyter反應(yīng)遲鈍,關(guān)掉重開巨柒!一陣折騰樱拴,依舊是熱情的報(bào)錯(cuò)。小藍(lán)凌亂了洋满,簡(jiǎn)直不敢相信自己的眼睛晶乔!

問題解析

  1. kernel是什么?

    A kernel provides programming language support in Jupyter. IPython is the default kernel. Additional kernels include R, Julia, and many more.(術(shù)語(yǔ))根據(jù)官方解釋牺勾,kernel簡(jiǎn)而言之就是jupyter支持的編程語(yǔ)言環(huán)境正罢。

    在上面的案例,新建的ipynb文件是運(yùn)行在python3的環(huán)境中禽最,而需要的jieba庫(kù)是安裝在python2的環(huán)境中腺怯,所以在notebook中肯定找不到j(luò)ieba,需要在kernel選項(xiàng)中將kernel切換到python2的環(huán)境下川无。

  2. notebook啟動(dòng)ipynb時(shí)呛占,默認(rèn)kernel是什么?

    新建ipynb文件時(shí)懦趋,選擇的是哪個(gè)kernel晾虑,每次進(jìn)入時(shí)就啟動(dòng)相應(yīng)的kernel

  3. kernel和notebook(spyder)是什么關(guān)系?

    notebook和spyder都是編輯器仅叫,代碼python或其他運(yùn)行需要語(yǔ)言編譯環(huán)境的支持帜篇,kernel中就包含了這個(gè)語(yǔ)言環(huán)境,不同的kernel可對(duì)應(yīng)不同的環(huán)境诫咱。

  4. kernel和虛擬環(huán)境是什么關(guān)系笙隙?

    虛擬環(huán)境安裝的python語(yǔ)言編譯環(huán)境,通過配置Jupyter下的kernel.json文件坎缭,就可以將虛擬環(huán)境映射為kernel竟痰。

  5. conda創(chuàng)建虛擬環(huán)境后签钩,如何新建kernel?

    conda create -n my_env python=3 ipykernel坏快,創(chuàng)建的時(shí)候務(wù)必要安裝ipykernel(如果是R語(yǔ)言铅檩,要安裝irkernel),ipykernel包的作用是將當(dāng)前所在python環(huán)境添加為kernel莽鸿,配置文件路徑為~/anaconda3/envs/my_env/share/jupyter/kernels/python3/kernel.json昧旨。

  6. kernel相關(guān)操作

    • 查看系統(tǒng)環(huán)境kernel:jupyter kernelspec list

    • 自動(dòng)關(guān)聯(lián)kernel與虛擬環(huán)境:創(chuàng)建虛擬環(huán)境的同時(shí),安裝上ipykernel即可

    • 手動(dòng)配置kernel:

# 安裝ipykernel
conda install ipykernel
# 新建kernel祥得,其python環(huán)境指向創(chuàng)建kernel時(shí)所在的python環(huán)境
# 路徑為/usr/local/share/jupyter/kernels/kernel_name
# 配置文件為/usr/local/share/jupyter/kernels/kernel_name/kernel.json
ipykernel kernel install [--name kernel_name --display-name "display_name"]
# 查看kernel
jupyter kernelspec list
# 刪除kernel
jupyter kernelspec remove kernel_name
  1. kernel管理

    在系統(tǒng)環(huán)境(非虛擬環(huán)境)安裝以下包兔沃,能便捷的管理和切換kernel。

    • 切換kernel用nb_conda_kernelsconda install -c conda-forge nb_conda_kernels

    • 管理kernel用nb_condaconda install -c conda-forge nb_conda

  2. conda不好用啃沪?

    這個(gè)完全不存在的粘拾,與pip同為包管理器,conda與pip只有小部分功能有重疊创千,如安裝python包和配置虛擬環(huán)境缰雇。pip可以在任何環(huán)境中快速的管理python包,而conda需要anaconda環(huán)境的支持追驴,但conda很好的處理了包之間的依賴關(guān)系械哟,尤其是在數(shù)據(jù)科學(xué)方面。

    案例中conda安裝失數钛(其實(shí)是調(diào)用jieba失斚九亍),是因?yàn)樵谔摂M環(huán)境下并沒有安裝anaconda丙曙,conda命令調(diào)用的系統(tǒng)環(huán)境中的conda爸业,所以失敗了。

  3. anaconda和conda是什么關(guān)系亏镰?

    anaconda是python發(fā)行版(發(fā)行版就是內(nèi)置了python相關(guān)軟件包集合的程序扯旷,安裝后可直接使用,不需要再單獨(dú)配置這些包)索抓,conda是包管理器(包管理器是便捷的管理工具钧忽,用于軟件包的安裝、升級(jí)逼肯、卸載等操作耸黑,會(huì)自動(dòng)處理包之間的依賴關(guān)系)。

    除了anaconda外篮幢,發(fā)行版還有miniconda大刊,其中只包含了conda管理器,未安裝pydata生態(tài)圈軟件三椿,體積小缺菌,方便熟練工按需裝載軟件曲尸。

其他

使用anaconda3自帶的jupyter notebook,dataframe默認(rèn)的輸出就沒有邊框男翰,可視效果很差,在notebook 5.0.0版本中做的更改(來(lái)源)纽乱,有人嘗試將notebook降級(jí)回4.4版本蛾绎,懶得折騰,將就看了鸦列。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末租冠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子薯嗤,更是在濱河造成了極大的恐慌顽爹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骆姐,死亡現(xiàn)場(chǎng)離奇詭異镜粤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)玻褪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門肉渴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人带射,你說(shuō)我怎么就攤上這事同规。” “怎么了窟社?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵券勺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我灿里,道長(zhǎng)关炼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任钠四,我火速辦了婚禮盗扒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缀去。我一直安慰自己侣灶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布缕碎。 她就那樣靜靜地躺著褥影,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咏雌。 梳的紋絲不亂的頭發(fā)上凡怎,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天校焦,我揣著相機(jī)與錄音,去河邊找鬼统倒。 笑死寨典,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的房匆。 我是一名探鬼主播耸成,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼浴鸿!你這毒婦竟也來(lái)了井氢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤岳链,失蹤者是張志新(化名)和其女友劉穎花竞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掸哑,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡约急,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了举户。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烤宙。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖俭嘁,靈堂內(nèi)的尸體忽然破棺而出躺枕,到底是詐尸還是另有隱情,我是刑警寧澤供填,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布拐云,位于F島的核電站,受9級(jí)特大地震影響近她,放射性物質(zhì)發(fā)生泄漏叉瘩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一粘捎、第九天 我趴在偏房一處隱蔽的房頂上張望薇缅。 院中可真熱鬧,春花似錦攒磨、人聲如沸泳桦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)灸撰。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浮毯,已是汗流浹背完疫。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留债蓝,地道東北人壳鹤。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像饰迹,于是被迫代替她去往敵國(guó)和親器虾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一欧芽、什么是Jupyter Notebook莉掂? 1. 簡(jiǎn)介 Jupyter Notebook是基于網(wǎng)頁(yè)的用于交互計(jì)算...
    Raxxie閱讀 1,442,259評(píng)論 36 704
  • Anaconda介紹 Anaconda 是一個(gè)包含數(shù)據(jù)科學(xué)常用包的 Python 發(fā)行版本。它基于 conda —...
    Jackpot_0213閱讀 1,683評(píng)論 0 1
  • 〇、序 Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言曲楚,其使用厘唾,具有跨平臺(tái)的特點(diǎn),可以在Linux龙誊、macO...
    Raxxie閱讀 1,386,127評(píng)論 33 582
  • 獲得的技能: 一抚垃、使用搜索引擎的10個(gè)技巧 1、關(guān)鍵詞組合(關(guān)鍵詞和關(guān)鍵詞之間以空格隔開搜索) 2趟大、用“-(減號(hào))...
    巧23閱讀 356評(píng)論 0 0
  • 熾焰煎焚何慘烈 ——李佩甫《生命冊(cè)》人物繪 本詩(shī)題記:《圣經(jīng)》上說(shuō)鹤树,人必須在火湖里浴火才能重生...
    微石閱讀 879評(píng)論 0 3