Francisco Albert Francisco Albert - 2 months ago 34
Python Question

Python not finding elasticsearch package

I just installed with pip install elasticsearch the right package, but is not being found by my .py script.

I have this right now:

ls /Library/Python/2.7/site-packages

README pip-1.5.6-py2.7.egg urllib3-1.8.3-py2.7.egg-info virtualenv.py virtualenv_support
easy-install.pth urllib3 virtualenv-1.11.6.dist-info virtualenv.pyc


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

easy-install.pth elasticsearch-1.0.0.dist-info setuptools-4.0.1-py2.7.egg sitecustomize.py
elasticsearch pip-1.5.6-py2.7.egg setuptools.pth sitecustomize.pyc


Now when I run my script myelastic.py:

import sys
print sys.path

from elasticsearch import Elasticsearch
es = Elasticsearch()


I have this:

['/Users/tati/Desktop/python', '/Applications/MAMP/Library/lib/python27.zip', '/Applications/MAMP/Library/lib/python2.7', '/Applications/MAMP/Library/lib/python2.7/plat-darwin', '/Applications/MAMP/Library/lib/python2.7/plat-mac', '/Applications/MAMP/Library/lib/python2.7/plat-mac/lib-scriptpackages', '/Applications/MAMP/Library/lib/python2.7/lib-tk', '/Applications/MAMP/Library/lib/python2.7/lib-old', '/Applications/MAMP/Library/lib/python2.7/lib-dynload', '/Applications/MAMP/Library/lib/python2.7/site-packages']
Traceback (most recent call last):
File "myelastic.py", line 5, in <module>
from elasticsearch import Elasticsearch
ImportError: No module named elasticsearch


It's the first time I work with virtualenv, but I'm not sure how to work around this issue, thanks!

Answer

You have called your file the same name as the module:

File "/Users/tati/Desktop/python/elasticsearch.py".

It is shadowing the module name so you are importing from your file not the elasticsearch module. Just rename your .py to something other than elasticsearch.py.