Virtualenv convient-il à un serveur de production?

15

Je prévois de mettre en place une application Python ( Pyblosxom ) sur mon serveur et envisage de l'exécuter dans son propre sandbox virtualenv avec --no-site-packages. J'espère qu'une telle configuration sera facilement portable et maintenable au fil des ans.

Cependant, je n'ai utilisé virtualenv que pour les environnements de développement qui recréent localement une certaine configuration de serveur, et la plupart des sources sur virtualenv semblent également mentionner virtualenv pour une telle utilisation.

Existe-t-il un inconvénient à exécuter une application Python à partir d'un virtualenv sur un serveur en direct?

REMARQUE: En ce qui concerne la portabilité de l'installation, je viens d'être informé de l' --relocatableoption expérimentale qui doit être exécutée après l'installation de nouveaux packages. Même si je ne l'ai pas fait, je suppose que la configuration serait assez portable grâce à pip.

gnufs
la source

Réponses:

15

Oui, un virtualenv est tout à fait adapté à la production - nous avons (très) de gros clients utilisant Python exécutant leurs applications à l'intérieur d'un virtualenv, et cela fonctionne très bien pour les garder isolés de la configuration Python du système.

Cependant, je ne recommanderais pas de l'utiliser pour la "portabilité" - en essayant de transporter le tout d'une machine à l'autre. Il y a beaucoup trop de possibilités d'échecs subtils en raison d'incompatibilités que personne d'autre ne remarquera (car ce n'est pas quelque chose qui est largement fait). Au lieu de cela, ayez une automatisation qui est capable de configurer un nouveau virtualenv correspondant à vos besoins sur une nouvelle machine.

womble
la source