It is hard for beginner to add packages to python. I really did not know where they could be found.
http://docs.python.org/install/index.html#modifying-python-s-search-path gives good introduction.
Then I decided to use the .pth way.
However, when I created the .pth file and put my packages in the site-packages folder, but python could not find them... it took me time again, and then found, site-packages has been discarded by python 2.6 and after...
This also makes me understand why when I use python command to check python path and surprisingly did not see "site-packages" appeared in it!
=========================
### show python path
>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.7/dist-packages/South-0.7.6-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-installer', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']
### show django version
>>> import django
>>> print django.VERSION
(1, 4, 1, 'final', 0)
### show south version
>>> import south
>>> south.__version__
'0.7.3'