O virtualenv é adequado para um servidor de produção?

15

Estou planejando configurar um aplicativo Python ( Pyblosxom ) no meu servidor e considerando executá-lo em sua própria caixa de proteção virtualenv com --no-site-packages. Espero que essa configuração seja facilmente portátil e sustentável ao longo dos anos.

No entanto, usei o virtualenv apenas em ambientes de desenvolvimento que recriam localmente uma determinada configuração do servidor, e a maioria das fontes sobre o virtualenv também menciona o virtualenv para esse uso.

Existe alguma desvantagem em executar um aplicativo Python a partir de um virtualenv em um servidor ativo?

NOTA: Quanto à portabilidade da instalação, acabei de tomar conhecimento da --relocatableopção experimental que precisa ser executada após a instalação de novos pacotes. Mesmo se eu não fizesse isso, acho que a instalação seria bastante portátil, graças ao pip.

gnufs
fonte

Respostas:

15

Sim, um virtualenv é bastante adequado para produção - temos clientes (muito) grandes em Python executando seus aplicativos dentro de um virtualenv e funciona muito bem para mantê-los isolados da configuração do sistema em Python.

No entanto, eu não recomendaria usá-lo para "portabilidade" - tentando transportar tudo de uma máquina para outra. Há muitas oportunidades para falhas sutis devido a incompatibilidades que ninguém mais notará (porque não é algo amplamente feito). Em vez disso, tenha automação capaz de configurar um novo virtualvv que atenda aos seus requisitos em uma nova máquina.

mulher
fonte