The problem that I am facing is whenever I make changes to my Python code, like in __init__.py or views.py file, they are not reflected on the server immediately. I am running the server using Apache+mod_wsgi, so all the Daemon process and virtual host are configured properly.
I find that I have to run setup.py each time for new changes to take place. Is this how Pyramid works or I am missing something. Shouldn't the updated files be served instead of the old ones.
It's usually a lot easier to use something other than mod_wsgi to develop your Python WSGI application (mod_wsgi captures stdout and stderr, which makes it tricky to use things like pdb).
The Pyramid scaffolding generates code that allows you to do something like "pserve development.ini" to start a server.  If you use this instead of mod_wsgi to do your development, you can do "pserve development.ini --reload" and your changes to Python source will be reflected immediately.
This doesn't mean you can't use mod_wsgi to serve your application in production.  After you get done developing, you can then put your application into mod_wsgi for its productiony goodness.
File changes not reflecting immediately