Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Environment info:

$ which python
$ python
Python 2.6.1 (r261:67515, Jul  7 2009, 23:51:51) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin

$ echo $PATH

$ which easy_install

Specifically, let's try the simplejson module (I know it's the same thing as import json in 2.6, but that isn't the point)

$ sudo easy_install simplejson
Searching for simplejson
Best match: simplejson 2.1.0
Processing simplejson-2.1.0.tar.gz
Running simplejson-2.1.0/ -q bdist_egg --dist-dir /tmp/easy_install-Ojv_yS/simplejson-2.1.0/egg-dist-tmp-AypFWa
The required version of setuptools (>=0.6c11) is not available, and
can't be installed while this script is running. Please install
 a more recent version first, using 'easy_install -U setuptools'.

(Currently using setuptools 0.6c9 (/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python))
error: Setup script exited with 2

Okay, so I'll update setuptools...

$ sudo easy_install -U setuptools
Searching for setuptools Reading
Best match: setuptools 0.6c11
Processing setuptools-0.6c11-py2.6.egg
setuptools 0.6c11 is already the
active version in easy-install.pth
Installing easy_install script to
/usr/local/bin Installing
easy_install-2.6 script to

Processing dependencies for setuptools
Finished processing dependencies for

I'm not going to speculate, but this could have been caused by any number of environment changes like the Leopard -> Snow Leopard upgrade, MacPorts or Fink updates, or multiple Google App Engine updates.

share|improve this question
up vote 3 down vote accepted

I followed the directions on the website below, which solved the issue for me:

Namely, download the appropriate Python version and then run:

sh ./setuptools-0.6c11-py2.7.egg
share|improve this answer

By default OSX uses /usr/bin/easy_install for third party package installs. This script is hardcoded to use a version of setuptools that is older than the version required by pymongo for python2.7 support. You can work around it like this:

$ easy_install -U setuptools
$ python -m easy_install pymongo

To upgrade do:

$ python -m easy_install -U pymongo
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .