Моя производственная среда на основе сборки Python была перемещена администраторами в chroot. Теперь повторный запуск сборки завершается неудачно, потому что компилятор (gcc) завершает работу с ошибкой при компиляции любого пакета с C-расширениями (PIL, ZODB).
_imaging.c:3403: error: (near initialization for 'functions[39].ml_meth')
error: Setup script exited with error: command 'gcc' failed with exit status 1
Админы сказали мне, что gcc не работает в chroot. Конечно, это странная и нежизнеспособная ситуация, и она будет исправлена как можно скорее.
Но я использую buildout/virtualenv уже много лет. Теперь меня действительно интересуют варианты, которые у меня все еще есть для обновления моего развертывания Python на основе сборки, когда gcc не работает. Я успешно запустил сборку, если удалил все зависимости (в buildout.cfg или пакетах setup.py), которые вызывают компиляцию gcc, но это оставило меня с незавершенными сценариями запуска приложения. В основном все пакеты уже скачаны/собраны/скомпилированы, но buildout всегда перекомпилирует часть, которая как-то изменилась (я знаю про .installed.cfg).
Как я или любой разработчик Python, не отвечающий за системное администрирование, могу продолжать использовать сильные стороны развертывания сборки в такой ситуации? Я открыт для любых предложений и хочу обсудить и узнать об их плюсах и минусах.