A very quick rundown of my process: * Custom script to build and send to a packages server: - deleting things like Cythoned files and generated .so files which setup.py likes to try to avoid recompiling even if you want it to. - setup.py build_ext - setup.py sdist -d dist.$TEMP - scp dist.$TEMP/*.tar.gz $packageserver:/path/to/packages
* Packages server is basically a www directory with a frilly directory listing for the packages sent to it. A regular directory listing is fine. This is for easy_install/pip's find_links setting. * I deploy things in virtualenvs on Debian/Ubuntu because of the requirement for different versions of packages (CherryPy 2/3 springs to mind) and I don't like setuptools' way of handling multiple versions. However, virtualenv has a big problem with point upgrades to python, so it requires some extra time each time python gets upgraded. I tend to create a dedicated user that owns the virtualenv and that the app will run as. * Currently using easy_install but going to bite the bullet and move to pip at some point... - easy_install -UZf http://$packageserver/mypackages/ MyPackage - add a dud -i (before MyPackage) to avoid polling pypi which can be pointless and (very) slow. * Restart/reload apache (or your service if not using mod_python or mod_wsgi) I much prefer mod_wsgi-compatible frameworks (I think all of them now, but I'm stuck with some old TurboGears 1.x projects!) since reloading apache takes care of everything. My main gripe with mod_wsgi is that it's a bit fiddly to write the deployment.wsgi if you're not familiar with it or your framework doesn't provide a way of generating one. Hope that helps, Nick On Wed, May 15, 2013 at 10:57:16AM +0100, Harry Percival wrote: > Dear UK Python chums, > > some of you probably know I'm writing a book about TDD for O'Reilly. I'm > looking for some help with the (first) chapter on deployment. > > http://www.obeythetestinggoat.com/what-to-say-about-deployment.html > > What do you use for deployment? Do you have any kind of automated scripts? > How do you manage virtualenvs, the database, apache/uwsgi config... What do > you think might work as a sort of "best practice lite" for a simple site > for beginners? (django, sqlite database, static files) > > -- > ------------------------------ > Harry J.W. Percival > ------------------------------ > Twitter: @hjwp > Mobile: +44 (0) 78877 02511 > Skype: harry.percival > _______________________________________________ > python-uk mailing list > python-uk@python.org > http://mail.python.org/mailman/listinfo/python-uk _______________________________________________ python-uk mailing list python-uk@python.org http://mail.python.org/mailman/listinfo/python-uk