記錄一次關於 No module named「 xgboost「的排錯過程以及另類解決辦法

還記得之前掌櫃不是剛剛安裝了Jupyter notebook來遠程訪問,解決了本地容易出現Jupyter安裝包環境衝突的問題。然後今天運行一個預測模型的時候用到了Xgboost這個,就華麗麗地報錯 「沒有Xgboost模塊包?
在這裏插入圖片描述
於是一查發現,拉取的Datascience-notebook鏡像確實沒有Xgboost包。。。這就尷尬了,既然缺少了,那麼就安裝Xgboost即可解決。但是,重點來了,一開始掌櫃去終端安裝了Xgboost:
在這裏插入圖片描述
看上面顯示的也是成功安裝Xgboost,但是當掌櫃重新運行剛剛的程序時,還是報一開始的錯誤
在這裏插入圖片描述
這就奇怪了,掌櫃明明已經安裝好了Xgboost,怎麼還是報錯沒有Xgboost模塊?掌櫃又去查Xgboost安裝的位置:

顯示確實已經安裝在Python3.8的安裝包文件夾裏面。
但是爲啥還是會報錯說「沒有模塊Xgboost」?

掌櫃思考了一下,會不會是當前Jupyter notebook使用的工具包依賴環境沒有同步Python3.8的工具安裝包???

於是掌櫃又去查看了一下Jupyter Notebook的官方論壇,發現有着同樣疑問的朋友:
在這裏插入圖片描述

看到這個回答,果真就是依賴環境不同步導致的!。。。怪不得一直報錯沒有找到Xgboost🤣。

既然原因找到了,那麼解決辦法也有了。

  • 第一種就是同步兩個工具包依賴的環境配置,讓其保持一致;
  • 第二種就是使用魔法工具:%pip或者%conda,直接在當前會話的Jupyter notebook的kernel裏面安裝Xgboost,省去環境配置的麻煩。根據官方解釋這是IPython7.3更新的新功能,也兼容在Python3.8裏面:
    在這裏插入圖片描述
    個人也推薦這種,畢竟省事。
    下面掌櫃就第二種解決辦法演示一下:

在這裏插入圖片描述
然後會出現安裝的畫面:
在這裏插入圖片描述
最後安裝結束會出現這樣的提示:
在這裏插入圖片描述
再次重啓這個Kernel 就會更新當前環境下的工具包,再次運行就不會再報錯了。

在這裏插入圖片描述

參考資料:
dependencies-that-were-installed-yesterday-are-not-found
ipython-7-3-releases-with-conda-and-pip-magics-and-python-3-8-compatibility