Я пытаюсь использовать пользовательскую самокомпилированную версию Python, установленную под «/ opt» из сценария Upstart на Ubuntu 14.04. Общая настройка выглядит следующий:Как использовать самокомпилированный Python из сценария Upstart на Ubuntu 14.04
- Файл конфигурации службы определяет предварительный сценарий запуска, который вызывает некоторый Баш скрипт от пользователя (не корневой) каталог
- Этого Баша скрипт определяет функцию ошибки ловушки вызывая некоторый Python код
функция ошибки ловушки определяется как
function error_handler() { python << END # python code... END } trap 'error_handler ${LINENO} $?' ERR
Любая третья сторона побочные пакеты устанавливаются под «/ отказаться», а также с помощью пип от установки пользовательских Python
- PATH переменной окр для этого не суперпользователя включает в себя двоичную папку в/неавтоматического где пользовательские Python можно найти
- файл «.bashrc» был изменен, чтобы быть выполнены для не interactice лог-инов
Я также попытался использовать файл «.bash_profile» и просто называется «.bashrc» из него
в лог-файлы под „/var/log/upstart/service.log“, я вижу сообщений об ошибке что любой установленный сторонний пакет Python не найден. Эти пакеты устанавливаются под «/ неавтоматического»
Обычай установки Python сам работает, как ожидалось. Я могу запустить любой код Python и импортировать любой из установленных боковых пакетов.
То, что я пытался до сих пор, чтобы получить его работу в качестве услуги:
- Обновление пути окр varibale для данного пользователя
- вызова Баш скрипт из раздела «предпусковой» с помощью
sudo -u user_name
команда Изменить переменную PATH ENV внутри сценария Баш:
PATH=/opt/bin:$PATH export PATH function error_handler() { PATH="$PATH" python << END # python code... END } trap 'error_handler ${LINENO} $?' ERR
Set
PYTHONHOME
иPYTHONPATH env
переменных- Обновить поиск Пути к библиотеке из кода Python с использованием
sys.path.append
перед импортом любого из 3-й партии побочных пакетов
Вот мой вопрос: Как я могу убедить службу запуска, чтобы забрать версию Python, которую я хочу запустить, и использовать пакеты, установленные в разделе «/ opt»?
В принципе, я хочу использовать Python 2.7.9 на Ubuntu 14.04. До сих пор я не мог найти предварительно скомпилированный пакет Ubuntu 14.04.
В добавлении: Python 2.7.9 на Ubuntu 14.04 был бы одним из решений для решения нашей проблемы. Нам нужен только Python 2.7 с поддержкой TLS1_2. –