还记得之前掌柜不是刚刚安装了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