
Just as little side node:
lambda
is a special keyword in python.The usual convention is to append an underscore in such a case, i.e., use
lambda_
instead as a variable name 
lambda
is a special keyword in python.lambda_
instead as a variable name all_onsite_terms
was only introduced fairly recently.sudo apt-get install build-essential
?