Подходит ли virtualenv для производственного сервера?

15

Я планирую установить приложение Python ( Pyblosxom ) на моем сервере и планирую запустить его в собственной песочнице virtualenv с --no-site-packages. Я надеюсь, что такая установка будет легко переносимой и обслуживаемой в течение многих лет.

Однако я использовал virtualenv только для сред разработки, которые воссоздают определенную настройку сервера локально, и большинство источников о virtualenv, похоже, также упоминают virtualenv для такого использования.

Есть ли какой-либо недостаток для запуска приложения Python из virtualenv на живом сервере?

ПРИМЕЧАНИЕ. Что касается переносимости установки, я только что узнал об экспериментальной --relocatableопции, которую необходимо запустить после установки нового пакета. Даже если бы я этого не делал, я думаю, что установка была бы достаточно переносимой благодаря pip.

gnufs
источник

Ответы:

15

Да, virtualenv вполне подходит для производства - у нас есть (очень) крупные клиенты, использующие Python, которые запускают свои приложения внутри virtualenv, и это очень хорошо помогает изолировать их от конфигурации Python системы.

Тем не менее, я бы не рекомендовал использовать его для «переносимости» - пытаясь перенести все это с машины на машину. Слишком много возможностей для тонких сбоев из-за несовместимости, которую никто не собирается замечать (потому что это не то, что широко сделано). Вместо этого имейте автоматизацию, которая способна установить новое virtualenv, соответствующее вашим требованиям на новой машине.

ombble
источник