This is remarkably similar to how I setup my Django settings.py files. The only thing I'd add is I like to have a lib folder and do a sys.path.insert(0, PATH/TO/Lib/Folder) in my manage.py and .wsgi files. This makes it really easy to manage dependencies. The other option is to use virtualenv, but in my experience it falls down pretty hard on modules that require C bindings, so why not just manage it manually? In addition, if you use git, you can take advantage of git's submodule functionality to really easily keep track of specific versions of your submodules.
I was actually in the middle of a similar writeup that includes the above tips, so I'll post that when I'm done.