前情提要不重要
最近還是在看聚類方面的論文,用MATLAB做完FCM的實驗之後,考慮到自己一直在學Python,總覺得應該悄咪咪地實現一下這個讓我既愛又恨的算法嘻嘻。之後查資料時看到各位大佬瘋狂安利Ipython notebook(也就是本文介紹的jupyter notebook),什麼機器學習必備,什麼界面友好,功能強大,我這個求(ai)知(mu)若(xu)渴(rong)的人自然是不會放過,由此,毅然踏上踩坑的不歸路。
我不是背景,我只是度孃的搬運工
Ipython
IPython 是一個 python 的交互式 shell,比默認的python shell 好用得多,支持變量自動補全,自動縮進,支持 bash shell 命令,內置了許多很有用的功能和函數。
IPython 是基於BSD 開源的。
IPython 爲交互式計算提供了一個豐富的架構,包含:
- 強大的交互式 shell
- Jupyter 內核
- 交互式的數據可視化工具
- 靈活、可嵌入的解釋器
- 易於使用,高性能的並行計算工具
Ipython Notebook
Jupyter Notebook(此前被稱爲 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。
Jupyter Notebook 的本質是一個 Web 應用程序,便於創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和 markdown。 用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等
我是問題,也是重點,坐等被安排
看完上面專業嚴肅的背景介紹,大家心裏應該稍微明瞭,這其中可能出現的問題無非就是ipython和jupyter notebook這兩部分了呵呵呵。
- 關於Ipython
(1)在Ipython的安裝過程中其實並沒有出現什麼大問題,cmd中輸入一個命令:
pip install ipython輕鬆解決,甚至也沒出現別人講的由於ipython的i沒有大寫導致安裝不成功的問題。(Lucky girl~)
(2)不過有一點小建議:
安裝Ipython時,儘量將cmd的目錄先切換到pip.exe所在的目錄下,如:
關於Jupyter Notebook
(1)原理上安裝jupyter notebook與ipython並無差別,問題不大,可是我在安裝時就偏偏報錯:
DistutilsError: Setup script exited with error: Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat).Command “python setup.py egg_info” failed with error code 1 in C:\Users\zhuzhuzhu\AppData\Local\Temp\pip-build-wm0esipm\pywinpty..
立刻求助度娘,得到的結果是下載Microsoft Visual C++ 14.0就可以解決。有那麼點反人類啊…之後甚至我還跑去py官網下載了pywinpty,最終還是一無所獲。
瘋狂搜索之後,終於在芸芸衆博中找到了這篇,一行代碼拯救我。(也不盡完美,其實直接按問題二的解法一頓操作就可以解決這個問題,親測和下載Microsoft Visual C++ 14.0沒什麼關係)
正解如下:使用pip install –upgrade setuptools更新setuptools
同樣注意安裝jupyter notebook時也在pip.exe所在路徑下安裝,如:
Jupyter Notebook安裝完成後,我們在cmd中直接輸入 jupyter notebook 進行檢測,cmd窗口反饋以及網頁跳轉見下圖:
以上說明安裝成功,且上圖顯示的目錄就是你pip.exe存在的那個目錄:
之後進行jupyter notebook 的配置:
jupyter notebook –generate-config
首先通過此行代碼得到配置文件的位置:
修改配置文件:(注意看下圖綠色光標那行)
原文件截圖:
修改後截圖:
注意改完存儲位置之後,一定要去掉本行的註釋符號!!
如此一來,就路徑改成了自己的工作目錄,以後寫的代碼都會存儲到這裏了~
再次在cmd中輸入命令:jupyter notebook,注意看第三行那裏與之前的區別。
之後就可以通過右上角的new來新建你的內容了~
Jupyter Notebook中py2與py3的內核共存問題
別攔我,我一定要說,這絕逼是共存裏的神坑!!照着各種教程傻瓜式操作,最終漏洞百出,報錯不斷,深夜突然解決的我按捺不住激動的心情,一定要把這篇博客補完!!
原本以爲參考這篇博客按照以下步驟就能輕鬆解決問題:
https://blog.csdn.net/mighty13/article/details/77972353
安裝python2內核:
ipython kernel install –name python2
安裝python3內核:
ipython kernel install –name python3
事實上我電腦上也確實成功出現了2和3兩個版本的python。
但是!!!當我用print “hello world” 與 print(“hello world”)進行測試時,驚奇的發現,不管是py2還是py3,以上兩種形式均不報錯,而這就非常奇怪了,很明顯與常理不符。於是,我查看了python3內核文件,噹噹噹當….驚天大祕密!!路徑那裏竟然是python2的安裝路徑,難怪測試不報錯。
我迅速將路徑改爲python3的路徑,再次打開jupyter notebook結果報錯:The kernel has died, and the automatic restart has failed.各種搜索無果。最終放棄這條路……
方法2–殊途同歸
恰好我電腦上之前裝了Anaconda2,因此我以python2爲主體環境,來配置一個python3爲副本的環境。首先要擁有Anaconda2和Anaconda3兩個安裝包,官網上下載非常慢,推薦用清華開源鏡像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
默認已安裝好Anaconda2,在安裝Anaconda3時,安裝路徑應如圖設置在Anaconda2路徑下的envs文件夾裏,且下一步操作不要勾選環境變量,防止副環境與主環境發生衝突~
安裝成功之後,在命令行中輸入:
activate py3
副環境(python3)運行成功,如果想要進入python2環境,則直接在一開始的命令行裏輸入python即可:
確保這部分沒有問題之後,在命令行中輸入jupyter notebook,看自己缺哪個內核,之後在你所缺的py路徑內使用命令:python -m ipykernel install –user安裝內核。
今日份總結
往往這種看起來沒什麼難度的問題纔是最難解決的,因爲很可能就因爲某個操作,你和別人的遇到的問題就相去甚遠,難以參考,這種時候則更應該不斷嘗試,積極面對,某種程度上而言,根據手頭已有的資料自行解決問題實則也是提高能力必不可少的環節,那麼,不要怕麻煩呦~