2008-10-03 12 views
18

Tengo una aplicación web de Python que consta de varios paquetes de Python. ¿Cuál es la mejor manera de construir e implementar esto en los servidores?Cómo compilar e implementar aplicaciones web de Python

Actualmente estoy implementando los paquetes con Capistrano, instalando los paquetes en un virtualenv con bash, y configurando los servidores con títere, pero me gustaría obtener una solución más basada en Python.

He estado buscando un poco en zc.buildout, pero no está claro para qué puedo/debo usarlo.

Respuesta

0

pyinstall parece que debería ser una solución más simple para usted. Al menos en lo que respecta al empaquetado, van las cosas de Python y la instalación en virtualenv. No sé de una manera pitónica de hacer la configuración del servidor ...

1

Paver es un rake/make work similar para python. No sé si esto es lo que estás buscando, todavía no he encontrado nada equivalente a un títere para python ...

0

Uso Mercurial como mi sistema SCM, y también para el despliegue. Solo se trata de clonar el repositorio desde otro, y luego una extracción/actualización o una recuperación lo actualizarán.

Utilizo varias instancias del repositorio, una en el servidor de desarrollo, una (o más, dependiendo de las circunstancias) en mi máquina local, una en el servidor de producción, y un repositorio 'Master' que está disponible para el mayor internet (aunque solo por SSH).

Lo único que no hace es actualizar automáticamente la base de datos si se cambia, pero con los ganchos entrantes probablemente podría hacer esto también.

+0

Si está utilizando SCM, ¿significa que tiene archivos miniados en el repositorio? ¿Archivos PO construidos también? Entonces, después de cada commit de código fuente, el commiter también debe reconstruir archivos binarios/derivados y comprometerlos también. – Almad

+1

En realidad, las versiones minimizadas/en caché de los archivos se generan en el servidor, utilizando django-css. –

2

Depende de lo que sea su infraestructura. Solo estamos usando paquetes debian y buildbot para hacerlos.

En otras configuraciones, uso Fabric scripts. En cuanto al formato, solo estoy usando archivos tbz2, pero he oído que las personas simplemente depoloying eggs.

Recomiendo encarecidamente tener una compilación adecuada y tener BuildBot/Hudson para compilar paquetes, ya que usar SCM supera el propósito y fomenta las malas prácticas.

Cuestiones relacionadas