If you prefer configuration and tweaking around an out-of-the-box system, and like PHP in case coding becomes necessary, than take Drupal. It is widely used and has a configurable module for each of your requirements (Avatar, user points ect.), and works out of the box. But upgrading might become a nightmare, and passing a certain level of customization can more easily done with frameworks like Django.
If you like to code Python, configuration on file system level, much coding from the beginning, Django is the preferred choice from my point of view, as it provides most flexibility and has proven itself on many live sites. But getting something started takes at least a month, while with Drupal you have something up and running withing a day or two.
I suggest have a look at Drupal first, collecting the modules you need, it just makes fun. But keep in mind that customizing and maintaining it for more than two years is more work than doing it with Django from the beginning.