using python libs and mercurial from virtualenv

S2HC_johan September 18, 2012

Hi,

I'm using sourcetree and like it alot, however I now have to use a precomit hook from a python lib like

[hooks]
precommit=python:myhookslib.hghooks.precommit

This worked on my other computer, now however this lib is installed in a virtualenv. I've choosen the mercurial lib installed in this virtualenv, but it doesn't seems like the default python environment is started. Is there any way for me to specify what python environment sourcetree should use, like a global variable or even better if I could specify it for each repository.

4 answers

1 accepted

0 votes
Answer accepted
S2HC_johan October 9, 2012

You can alter the script in

~/Library/Application\ Support/SourceTree/userhg_local/hg_local

In that file you alter the shebang from

#!/usr/bin/env python

which in general is the correct way to do it, to

#!/path/to/my/virtualenv/bin/python

0 votes
S2HC_johan September 18, 2012

Ok, but the reason for having a virtualenv is to minimize the changes I do to the system. The problem is solved for me, but it would be nice to be able to specify wich python binary that should be used, that wold allow for use with virtualenvs

0 votes
stevestreeting
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 18, 2012

SourceTree will just use whatever is your default system Python, so if you made the virtualenv version the one that's used by defualt that might work. Unfrotunately to set this across OS X apps rather than the terminal you have to edit /etc/paths rather than just set PATH.

0 votes
S2HC_johan September 18, 2012

I found that I could alter the script in ~/Library/Application Support/SourceTree/userhg_local/hg_local to start with

#!/path/to/my/virtualenv/bin/python

Although this resolvs my issue for now, I don't know what will happen after an update. Is there a better way to do it?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events