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).