You can easily create a dependency file with pip, which will mean that the correct versions of each application will be supported between servers
creates a file like this:
django==1.3 django-tagging markdown ...
which can later be used to reinstall the listed applications on another server
This is a good and easy approach. You may get complicated with the like zc.buildout
http://pypi.python.org/pypi/zc.buildout
which helps to manage packages (python and non-python) with scripts (you create βrecipesβ containing the package details that you need)
If you need more control over server settings, you can use a "puppet" or a "chef"
http://projects.puppetlabs.com/projects/1/wiki/Big_Picture http://wiki.opscode.com/display/chef/Chef+Server
which focus on automation and deployment more than just dependencies, but entire servers
I did not need to use simpler icon requirements files, but other options are great if you need more.
EDIT
Saving your own version of applications in your project root / root path can become complicated and difficult to track, I would suggest using the protocol requirements file.
Timmy O'Mahony
source share