This package includes all files needed for embedding Python into the Source SDK. This is the second version that includes Linux lib files and updates to the Python manager that cleans up the handles properly and removes std::string, std::vector as Linux dislikes it. See the description for tutorial link.
Adding a dynamic scripting language to a game allows for rapid changing of game elements and also allows the community to change and expand the game it self.
There are many scripting languages to choose from so why Python? Compared to other scripting languages Python offers a relatively simple syntax, dynamic typing, vast standard libraries, easy to interface with C/C++ via boost.python and a lot of documentation and tutorials.
However, python does have a few setbacks. Its very hard to sandbox python thus it can open up a lot of exploits to server operators and there is some complexities that the programmers have to deal with (but this is better than having the end user deal with other complexities that python removes).