Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot import scikits-learn even though it seems to be installed

Per the scikit-learn user guide, I installed scikit-learn using pip install -U scikit-learn.

So using pip search scikit-learn, I get this search result:

scikit-learn - A set of python modules for machine learning and data mining
INSTALLED: 0.12.1 (latest)

But when I go into Python and try to import sklearn, I get an ImportError: No module named sklearn. This really should have just worked.

I am using Enthought's free distribution of Python (2.7.3) on a Mac OS 10.6.8 with NumPy 1.6.1 and SciPy 0.10.1. Yes, I'm aware that EPD Free comes with scikit-learn but pip should have upgraded my version so that I can actually use scikit-learn.

like image 917
Alan Avatar asked Nov 03 '12 20:11

Alan


3 Answers

Got same problem, @Alan gave correct solution but hard way. Here are easy steps to resolve issue, as i am on mac osx, giving steps for same.

Ameys-Mac-mini:~ amey$ python --version
Python 2.7.2
Ameys-Mac-mini:~ amey$ cd /Library/Python/2.7/site-packages/
Ameys-Mac-mini:site-packages amey$ brew install gcc
Ameys-Mac-mini:site-packages amey$ sudo pip install -t . numpy scipy scikit-learn 
like image 171
Amey Jadiye Avatar answered Nov 08 '22 11:11

Amey Jadiye


Thanks folks (see comment thread under the question)! It turns out that I have two versions of Python under my Mac's /Library/Frameworks/Python.framework directory tree: 2.7 (came with OSX) and 7.3 (installed by EPD Free).

It turns out pip put scikit-learn under 2.7 when I really wanted it under 7.3.

Changing directories to site-packages under the desired version of Python, and invoking pip install -t . {package-name} suffices to install package-name under the desired version of Python.

POSTLUDE (Feb 2021): Looking back on this question from almost 9 years ago, I think I was running into a version of this XKCD comic.

dependency management hell in python

Nowadays, for dependency management of Python data engineering libraries like scikit, I'm happy with just using conda and pyenv.

like image 14
Alan Avatar answered Nov 08 '22 09:11

Alan


In my case, my python extension has installed all in

/Library/Python/2.7/site-packages/ 

After I use the command given by the official site

pip install -U numpy scipy scikit-learn

the scikit-learn package was actually installed in my

/usr/local/lib/python2.7/site-packages

So I copied all the packages in second to the first directory, then I can import the sklearn package.

like image 7
zinc Avatar answered Nov 08 '22 11:11

zinc