pythonjupyter-notebookxgboost

Cannot import xgboost in Jupyter notebook


I'm on a MAac. I can import xgboost from python2.7 or python3.6 with my Terminal but I can not import it on my Jupyter notebook.

import xgboost as xgb
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-7-745aa3a2d734> in <module>()
----> 1 import xgboost as xgb

ModuleNotFoundError: No module named 'xgboost'

Although I write :

!pip3 install xgboost

It prints that :

Requirement already satisfied: xgboost in     /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xgboost-0.6-py3.6.egg
Requirement already satisfied: numpy in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from xgboost)
Requirement already satisfied: scipy in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from xgboost)

How to resolve this?


Solution

  • Running a shell escape !pip3 doesn't guarantee that it will install in the kernel you are running. Try:

    import sys
    print(sys.base_prefix)
    

    and see if this matches either of your terminal pythons. You should be able to run <base_prefix>/bin/pip install <package> to ensure it is in the right site-packages.

    You can also look at which python your kernel is running by looking in kernel.json most likely in ~/Library/Jupyter/kernels/<kernel>/kernel.json.

    Note: you can also programmatically install packages with:

    import pip
    pip.main(['install', '<package>'])
    

    which will force it to be in the right site-packages for your kernel.