Building python development environment
I’m preparing to start development on beecoop and anonymous websites and I would like to establish a comfortable python development environment to make development and deployment of different applications easier.
There are several factors that I need to consider:
- I’m going to be working on several different projects at the same time.
- Each project is going to be using different python modules.
- Some projects will run on apache, others on cherokee.
- Cherokee does not have installer for Mac OS X, so I can not replicate our production environment locally.
- I would like to start working in TDD
- Last and not least, I have to make it easy for our sysadmin to deploy these projects.
Here are technologies that I’ve found so far and how I would like to combine them together.
Virtualenv with –no-site-packages switch allows you to create virtual environments that are seperate from your system. This forces you to be conscious of what packages your application is using. This is particularly useful when you’re doing development of applications that require different versions of python. We’re going to stick to python2.5 for the near future so this is not a major concern for us.
Buildout is the tool that i think we’re actually going to be using. It makes it easy for sysadmin to deploy the applications, while maintaining the benefit of forcing us to be conscious of what packages particular application requires. Buildout makes virtualenv unnecessary for us because it simulates virtualenv’s functionality by including the paths for all necessary packages in sys.path of every project.
Paste Script allows to create packages that we can include inside of our applications. It makes it easy to integrate multiple modules that are under development into our applications while keeping things clean and modular.
