2015-10-12 5 views
1

Я пытаюсь развернуть среду python как RPM. Так как у целевых систем может не быть интернет-соединения и/или компилятора C, переход на лету на лету может не работать. Среда разработки - python 2.7.10 с некоторыми модулями, установленными через pip. Как создать предварительную сборку среды python, например, активировать python?Как предустановить двоичные файлы python

ответ

2

Существует инструмент под названием «PEX», который использует твиттер, чтобы предварительно скомпилировать стек кода python, а также библиотеки, модули и данные поддержки в один пакет.

Это, в основном, архив в виде zipped, который запускается, как exe.

Есть несколько предостережений - один, для их запуска требуется некоторое время. Во-вторых, файлы будут работать только на одной и той же версии python, которую вы построили для них, - если у вас есть гибридная среда 3.0/2.7/2.6, она становится сложной.

У PEX есть пара выдающихся ошибок при кешировании установок и вещей.

Если это звучит как правильный подход, я могу вернуться и добавить детали ...

+0

Спасибо! Целевые системы имеют RHEL 6 и 7. И я не хочу связываться с системным python. Сейчас я просто устанавливаю каталог/opt/python и добавляю путь к нему. Я думаю, что PEX больше ориентирован на окна. Сейчас я больше сосредоточен на Linux. Как вы думаете? – Hec

+0

PEX - это, безусловно, Linux-совместимый инструмент. Мы используем его так, чтобы нам не приходилось беспокоиться о различиях версий в наших внутренних библиотеках, распространяющих приложения - мы знаем, что в приложении есть версия библиотеки, с которой прошли тесты. Twitter использовать (AFAICT) так, чтобы они не устанавливали все файлы поддержки на каждой производственной машине - они просто подталкивают pex к ней и запускают ее. –

+2

Один * может * создавать PEXes, которые будут работать на гибридных системах - я написал обертку вокруг основного инструмента, который будет делать именно это; он компилирует PEX для каждой версии Python, доступной на сервере buildserver, а затем объединяет их в один файл, который запускается на нескольких платформах Python. –

 Смежные вопросы

  • Нет связанных вопросов^_^