Какие варианты развертывания Python у меня есть, если GCC больше не работает

Моя производственная среда на основе сборки 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, не отвечающий за системное администрирование, могу продолжать использовать сильные стороны развертывания сборки в такой ситуации? Я открыт для любых предложений и хочу обсудить и узнать об их плюсах и минусах.


person Sascha Gottfried    schedule 04.09.2013    source источник


Ответы (1)


Сборка в другом месте, на хосте сборки -- запустите сборку там, где она может быть запущена (коробка с той же архитектурой, на которой работает GCC) -- затем интегрируйте Fabric в среду сборки, чтобы отправить сборку на узел развертывания. Я этого не делал, но предполагаю, что вам придется написать большую часть средств для отправки того, что вам нужно (например, встроенные яйца, разработки-яйца, каталоги src, parts, bin) на ваш сервер в вашем fabfile.

person sdupton    schedule 04.09.2013
comment
постройте в другом месте и переместите сборку на узел развертывания - я попробую. - person Sascha Gottfried; 05.09.2013
comment
Мне не удалось запустить сборку на хосте сборки с пользовательским питоном с хоста развертывания. Я прекратил расследование этого конкретного случая. - person Sascha Gottfried; 25.09.2013