¿Es virtualenv adecuado para un servidor de producción?

15

Estoy planeando configurar una aplicación Python ( Pyblosxom ) en mi servidor y estoy considerando ejecutarla en su propia caja de arena virtualenv con --no-site-packages. Espero que tal configuración sea fácilmente portátil y mantenible a lo largo de los años.

Sin embargo, solo he usado virtualenv para entornos de desarrollo que recrean una determinada configuración de servidor localmente, y la mayoría de las fuentes sobre virtualenv parecen mencionar también virtualenv para tal uso.

¿Hay algún inconveniente en ejecutar una aplicación Python desde virtualenv en un servidor en vivo?

NOTA: En cuanto a la portabilidad de la configuración, acabo de conocer la --relocatableopción experimental que debe ejecutarse después de la instalación de un nuevo paquete. Sin embargo, incluso si no hiciera esto, supongo que la configuración sería bastante portátil gracias a pip.

gnufs
fuente

Respuestas:

15

Sí, un virtualenv es bastante adecuado para la producción: tenemos (muy) grandes clientes que usan Python que ejecutan sus aplicaciones dentro de un virtualenv, y funciona muy bien para mantenerlos aislados de la configuración de Python del sistema.

Sin embargo, no recomendaría usarlo para "portabilidad", tratando de transportar todo de una máquina a otra. Hay demasiadas oportunidades para fallas sutiles debido a incompatibilidades que nadie más notará (porque no es algo que se haga ampliamente). En cambio, tenga una automatización que sea capaz de configurar un nuevo virtualenv que coincida con sus requisitos en una nueva máquina.

womble
fuente