Python-dad which stands for Django Automated Deployment is a lightweight Python package which harness the power of Virtualenv, pip and fabric to fully automate the development setup and deployment of django projects.
- Be easy to use (little to no knowledge of pip/fabric/virtualenv needed)
- Streamline django installation on different stages (dev, demo, beta, prod)
- Spread some pony love
- Works on existing projects
- Works with any VCS (svn, hg, git, etc..)
- Total encapsulation of project dependencies and versions (thanks to pip/virtualenv)
- Deploy project to demo or production stage from a single command
This show the process of configuring and using python-dad on a Django project:
$: cd myproject.com
$: ls
myproject
# Create necessary hooks
$: dad-admin.py -i myproject/
$: ls
myproject/ dad/ apache/
# Configure project
$: vim dad/project.yml
# Start developing !
$: dad-admin.py -d
# Deploy to demo server
$: dad-admin.py -p demo
# Deploy to production server
$: dad-admin.py -p prod
That's it !
For more detailed information about installing and using python-dad please read the Getting Started Guide
Two packages can be problematic to use with PIP, at least with Ubuntu.
When using PIL with Ubuntu 64bit you might get a jpeg encoder error. To fix it, simply do this:
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
For more infos about this bug: http://ubuntuforums.org/showthread.php?t=1751455
I also had some problem with MySQL-python, which sometimes work and sometimes doesn't work. I haven't figured out why exactly, but using a tarball solves the problem. So instead of using MySQL-python in your requirements.txt, use a direct tarball link like this:
http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz
This project was created and is sponsored by:
Motion Média (http://motion-m.ca)