pip giving "ImportError: No module named setuptools" but I can import setuptools in python interpreter

18,377

Your pip doesn't seem to be in agreement with your Python. Compare:

File "/Library/Python/2.6/site-packages/pip-1.2.1-py2.6.egg/pip/basecommand.py", line 107, in main

to

Installed /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg

If python2.7 has setuptools, then you should have

/Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install-2.7

available, in which case

easy_install-2.7 pip

should give you pip-2.7.

Share:
18,377
Hartley Brody
Author by

Hartley Brody

Check out more of my writing at my hiking & backpacking blog, or find me on twitter.

Updated on June 17, 2022

Comments

  • Hartley Brody
    Hartley Brody almost 2 years

    I'm getting setup on a new mac and I was humming along just fine, installing pip and a few packages. When suddenly, every pip command I'd try to run would throw

    Exception:
    Traceback (most recent call last):
      File "/Library/Python/2.6/site-packages/pip-1.2.1-py2.6.egg/pip/basecommand.py", line 107, in main
        status = self.run(options, args)
      File "/Library/Python/2.6/site-packages/pip-1.2.1-py2.6.egg/pip/commands/install.py", line 248, in run
        import setuptools
    ImportError: No module named setuptools
    

    I figured I had accidentally deleted a directory or something, so I tried reinstalling setuptools, following the advice of other answers on this site. I downloaded the setuptools egg from here and ran it like a shell script. Got this output:

    Processing setuptools-0.6c11-py2.7.egg
    Removing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
    Copying setuptools-0.6c11-py2.7.egg to /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
    setuptools 0.6c11 is already the active version in easy-install.pth
    Installing easy_install script to /Library/Frameworks/Python.framework/Versions/2.7/bin
    Installing easy_install-2.7 script to /Library/Frameworks/Python.framework/Versions/2.7/bin
    
    Installed /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
    Processing dependencies for setuptools==0.6c11
    Finished processing dependencies for setuptools==0.6c11
    

    Now, if I start an interactive python session, I can import setuptools without error, but pip (and other command line scripts) complain that it's not installed. Any ideas why Python seems to be finding it, but not other scripts?

    If it helps, this is what's in sys.path:

    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages