记录一次关于 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