Issue 2641: setuptools gets site-packages wrong on Mac (original) (raw)

On my Mac, /usr/local/bin/python2.5 is a symlink to "../../../Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5".

When I install Mercurial from source, the "mercurial" package is installed at "/usr/local/lib/python2.5/site-packages/mercurial", so the installation is broken. Since "site-packages" appears nowhere in the Mercurial source tree, I think it's setuptools (not Mercurial) that is getting this wrong.

Mercurial's setup.py can be seen here:

(as of this writing) http://hg.intevation.org/mercurial/crew/file/628da4a91628/setup.py

(the latest) http://hg.intevation.org/mercurial/crew/file/tip/setup.py

I'm not sure what the Right Thing would be, but if it's agreed that the current behavior is a hack, then (p for p in sys.path if p.endswith('site-packages')).next(), falling back to the current behavior, seems like a better hack.

Happy to patch, if someone can advise me; MvL?

This is a bug in the mercurial installer. The problem is in the Makefile, not in setup.py.

Specially, the makefile calls "python setup.py --prefix=/usr/local". That's not the correct prefix with a framework install on MacOSX.

I propose closing this issue because it is not a bug in distutils.

BTW. Mercurial seems to work fine otherwise ('hg' and 'hg version' give output, I haven't tried to use it otherwise).