Alex Rivera | Logout

Installing Mercurial on Mac OS X 10.6 Snow Leopard

Asked 2009-09-22T17:13:09.110
14

Installing Mercurial on Mac OS X 10.6 Snow Leopard

I installed Mercurial 1.3.1 on Mac OS X 10.6 Snow Leopard from source using the following:

cd ~/src
curl -O https://www.mercurial-scm.org/release/mercurial-1.3.1.tar.gz
tar -xzvf mercurial-1.3.1.tar.gz
cd mercurial-1.3.1
make all
sudo make install

This installs the site-packages files for Mercurial in /usr/local/lib/python2.6/site-packages/. I know that installing Mercurial from the Mac Disk Image will install the files into /Library/Python/2.6/site-packages/, which is the site-packages directory for the Mac OS X default Python install.

I have Python 2.6.2+ installed as a Framework with its site-packages directory in:

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

With Mercurial installed this way, I have to issue:

PYTHONPATH=/usr/local/lib/python2.6/site-packages:"${PYTHONPATH}"

in order to get Mercurial to work.

Questions

  • How can I install Mercurial from source with the site-packages in a different directory?
  • Is there an advantage or disadvantage to having the site-packages in the current location? Would it be better in one of the Python site-package directories that already exist?
  • Do I need to be concerned about virtualenv working correctly since I have modified PYTHONPATH (or any other conflicts for that matter)?

Reasons for Installing from Source

Dan Benjamin of Hivelogic provides the benefits of and instructions for installing Mercurial from source in his article Installing Mercurial on Snow Leopard.

Edit
Report

1 Answer

8

Especially since you have Python 2.6 available you can do something like python setup.py install --user, which will install Mercurial with ~/.local as prefix. You don't have to change the PYTHONPATH for this but only add ~/.local/bin to your PATH.

Regarding advantages and disadvantages: That all depends on what your PYTHONPATH in general looks like since modifying it will naturally modify the load order of packages (which becomes relevant if you have one version of Mercurial installed with one prefix and another with a different prefix). In general, I try to put all custom packages into a certain site-packages folder (say /usr/local/lib/python2.6/site-packages). Again: If you are the only person who will use those libs, the --user flag provided by Python 2.6's distutils makes something like this pretty easy (with adding ~/.local to the default search path for modules).

virtualenv should work just fine as long you your PYTHONPATH is used consistently.

answered 2009-09-22T21:08:11.820

Your Answer