For SIFT, it is a patented methodology and seems not possible to be used as the open sourced libraries. For SURF, which has been claimed more robust and faster then SIFT, there is OpenSURF written in C++.
Based on the information given on Wikipedia, I went for mahotas, which is for image processing in Python, and that's what I need.
I followed the installing instruction on the webpage of mahotas, which utilizes the easy_install approach. I have used easy_install once on Windows XP, but have had no experience on Ubuntu. According to the instruction of setuptools, I downloaded the setuptools-0.6c11-py2.6.egg and run it with:
$ sudo bash setuptools-0.6c11-py2.6.egg
The result showed a bunch of errors. I checked the first error message and found it said:
error: Python.h: No such file or directoryIt ws because my system had no python-dev, so just installed it and everything went smoothly.
Finally, use easy_install for installing mahotas:
$ sudo easy_install mahotas