I have written A UNIX/Linux environment manager that allows on-the-fly configuration of your shell environment. It's called, albion. Using albion, environment variables, aliases, functions, and so forth can be changed without requiring you to do the tedious log-out-and-log-back-in-again routine. Simply type 'albion load
Albion is similar to the Environment Modules Project, however, environment configuration files (configs) are written in standard shell language, not tcl. Another improvement over modules is that when unloaded, the effect of the configs is correctly undone, even if the configs have changed or been deleted after loading. The main albion tool is written in Python, with some supporting pieces written in POSIX shell code.
albion is currently alpha quality. The core functionality seems to be working just fine, but has only been tested in a bash shell environment. There is very little documentation, and it could use an install script to make getting started easier. The code is available on bitbucket.