"ImportError: No module named httplib2" even after installation

I'm having a hard time understanding why I get ImportError: No module named httplib2 after making sure httplib2 is installed. See below:

$ which -a python
/usr/bin/python
/usr/local/bin/python 

$ pip -V
pip 1.4.1 from /usr/local/lib/python2.7/site-packages/pip-1.4.1-py2.7.egg (python 2.7

$ pip list
google-api-python-client (1.2)
httplib2 (0.8)
pip (1.4.1)
pudb (2013.5.1)
Pygments (1.6)
setuptools (1.3.2)
wsgiref (0.1.2)

$ pip install httplib2
Requirement already satisfied (use --upgrade to upgrade): httplib2 in /usr/local/lib/python2.7/site-packages
Cleaning up...

$ python
Python 2.7.5 (default, Sep 12 2013, 21:33:34) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import httplib2
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 ImportError: No module named httplib2

I've also done

$ find / | grep httplib2
/usr/local/lib/python2.7/site-packages/httplib2
/usr/local/lib/python2.7/site-packages/httplib2/__init__.py
[... edited for brevity]

PLUMBING! >shakes fist at heavens<


Solution 1:

If there are multiple Python instances (2 & 3), try different pip, for example:

Python 2:

pip2 install httplib2 --upgrade

Python 3:

pip3 install httplib2 --upgrade

To check what's installed and where, try:

pip list
pip2 list
pip3 list

Then make sure you're using the right Python instance (as suggested in the other answer).

Solution 2:

added this to .bash_profile export PATH=/usr/local/bin:$PATH

then got:

$ which -a python
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python
$ python
Python 2.7.6 (default, Dec 27 2013, 14:07:24) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import httplib2
>>> 

can't say for sure why pip was installing to /usr/local instead of system default, but now they're the same, so it's working for now.

Solution 3:

I faced similar problems on Windows 7. Here is how I solved it:

  1. Install Python: Simply download Python and follow the installation instructions of the wizard.
  2. Now, Python should be accessible from the command line. However, in my case, calling

    py script.py resulted in the the same error: "ImportError: No module named httplib2"

  3. I then had to add the Python and Pip installation paths to the "Path" environment variable in order to install the httplib2 module and then execute the script without failure. I followed the instructions provided here.

  4. Then I was able to execute

    pip3 install httplib2 --upgrade

  5. In the end I successfully managed to execute the script containing the httplib2 import statement.

Solution 4:

On Ubuntu:

Installing the library using the Ubuntu package manager fixed my issue:

sudo apt-get install python-httplib2