[Pythonmac-SIG] easy_install broken on new macbook (includes solution)

Amos Latteier amos at latteier.com
Mon Oct 20 01:42:55 CEST 2008


Hi,

I just got a new aluminum macbook. It's great expect that it seems to
ship with a broken easy_install. I tracked down the problem and
submitted a bug to apple (bug #6302565). I'm sending the details
to this mailing list in hopes that it can help others, or perhaps others
can point out a better solution.

-Amos

The easy_install python command line tool fails to install python
package that include c extensions on my new macbook.

Here's how to reproduce the problem:

  $ easy_install simple_json

You will get an error message that ends with an error message like this:

  No eggs found in
/var/folders/Bb/BbkWGUJ4FGe9coHkryLH4U+++TI/-Tmp-/easy_install
  3CNYn-/simplejson-2.0.3/egg-dist-tmp-EOUkj5 (setup script problem?)
  error: Could not find required distribution simplejson

You don't have to use simple_json, any python package with c
extensions will trigger the problem.

The problem is that the apple-specific version of pkg_resources.py (in
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python)
shipped with the new macbooks changes the macos version number (line
165):

  def _macosx_vers(_cache=[]):
      if not _cache:
          # don't call sw_vers because that causes a SIGTRAP in gdb
          _cache = [['10.5', '1']]
      return _cache[0]

Previously the version was 10.5, not 10.5.1. This change is a problem
because the regular expression that checks version numbers (on line
194) doesn't work with it.

  macosVersionString = re.compile(r"macosx-(\d+)\.(\d+)(.*)")

One solution is to change the regular expression to something like the
following:

  macosVersionString = re.compile(r"macosx-(\d+)\.(\d+).*?-(.*)")

I have verified that this fix solves the problem for me.


More information about the Pythonmac-SIG mailing list